Bruce Momjian
128bed948f
Rewrite Solaris compiler tas() assembly routines, merge i386 and x86_64
...
assembler files, renamed as solaris_x86.s.
Theo Schlossnagle
20 years ago
Tom Lane
cc7eab38dd
Recognize __ppc64__, which seems to be Apple's spelling of the predefined
...
symbol for PPC64 hardware. I hadn't known that Apple supported PPC64 at
all, but darn if there aren't 64-bit variant libraries in OS X as well
as support in their gcc.
20 years ago
Bruce Momjian
f2f5b05655
Update copyright for 2006. Update scripts.
20 years ago
Bruce Momjian
a1675649e4
Remove QNX port.
20 years ago
Bruce Momjian
12af9cdff4
Add support for Solaris x86_64 using Sun's compiler.
...
Pierre Girard
20 years ago
Bruce Momjian
ea771743c8
Fix typo.
20 years ago
Bruce Momjian
8d26730a9a
Update s_lock.c comments.
20 years ago
Bruce Momjian
70cab220c8
Update ASM comments.
20 years ago
Tom Lane
a72ee09090
Add infrastructure for making spins_per_delay variable depending on
...
whether we seem to be running in a uniprocessor or multiprocessor.
The adjustment rules could probably still use further tweaking, but
I'm convinced this should be a win overall.
20 years ago
Tom Lane
9907b9775b
Don't use a non-locked pre-test of the spinlock on x86_64 machines.
...
The pre-test has been shown to be a big loss on Opterons and at best a
wash on EM64T.
20 years ago
Tom Lane
2d03390945
Sigh, looks like you need '.set mips2' before you can access MIPS
...
SYNC instruction.
21 years ago
Tom Lane
7319ab9a59
Add a SYNC instruction to the S_UNLOCK sequence for MIPS.
21 years ago
Tom Lane
5824d02155
Get the MIPS assembler syntax right. Also add a separate sync command;
...
the reference I consulted yesterday said SC does a SYNC, but apparently
this is not true on newer MIPS processors, so be safe.
21 years ago
Tom Lane
846319db3f
Another try at the inlined MIPS spinlock code. Can't test this myself,
...
but for sure it's not any more broken than the prior version.
21 years ago
Tom Lane
396526d8c3
Adjust m68k spinlock code to avoid duplicate in-line and not-in-line
...
definitions on recent Linux systems, per Martin Pitt.
21 years ago
Tom Lane
1a33436224
Replace out-of-line tas() assembly code for MIPS with a properly
...
constrained GCC inline version. Thiemo Seufer, by way of Martin Pitt.
21 years ago
Bruce Momjian
609e32b929
Add spinlock support for Itanium processor with Intel compiler.
...
Vikram Kalsi
21 years ago
PostgreSQL Daemon
2ff501590b
Tag appropriate files for rc3
...
21 years ago
Neil Conway
f629583f94
Document what the "rep; nop" x86 assembler sequence is actually equivalent
...
to, and what it is intended to do.
22 years ago
Tom Lane
682598139e
Get rid of /*-inside-comment warning. My fault.
22 years ago
Tom Lane
409b38f514
Fix TAS assembly stuff for Solaris/386. (I'm not in a position to
...
actually test this, but it couldn't be broken any worse than it was...)
22 years ago
Tom Lane
5042985fb4
Add s_lock support for HPUX on IA64, per Shinji Teragaito.
22 years ago
Tom Lane
17364edce6
slock_t must be int not char for MIPS. 7.4 got this right, but the
...
info was apparently mistranscribed in s_lock code rearrangement.
22 years ago
Bruce Momjian
da9a8649d8
Update copyright to 2004.
22 years ago
Tom Lane
1098677482
Adjust TAS assembly as per recent discussions: use "+m"(*lock) everywhere
...
to reference the spinlock variable, and specify "memory" as a clobber
operand to be sure gcc does not try to keep shared-memory values in
registers across a spinlock acquisition. Also tighten the S/390 asm
sequence, which was apparently written with only minimal study of the
gcc asm documentation. I have personally tested i386, ia64, ppc, hppa,
and s390 variants --- there is some small chance that I broke the others,
but I doubt it.
22 years ago
Tom Lane
037e2fcf8f
Must test for __hppa__ as well as __hppa to make linux-hppa happy.
22 years ago
Tom Lane
f8eed65dfb
Improve spinlock code for recent x86 processors: insert a PAUSE
...
instruction in the s_lock() wait loop, and use test before test-and-set
in TAS() macro to avoid unnecessary bus traffic. Patch from Manfred
Spraul, reworked a bit by Tom.
22 years ago
Tom Lane
afb09b5a31
Use inlined TAS() on PA-RISC, if we are compiling with gcc.
...
Patch inspired by original submission from ViSolve.
22 years ago
Tom Lane
9adaf64da3
Mop-up for HAS_TEST_AND_SET refactoring. Un-break two or three platforms
...
that were broken, try to make layout of s_lock.h entries consistent,
use HAVE_SPINLOCKS in preference to HAS_TEST_AND_SET everywhere outside
s_lock.h itself.
22 years ago
Bruce Momjian
caf6e9d2dd
Have configure --without-spinlocks actually not use spinlock code, even
...
if supported by the cpu.
22 years ago
Bruce Momjian
69f2e9b0fc
Move slock_t typdefs into s_lock.h from include/port files for
...
centralization and easier maintanence.
22 years ago
Bruce Momjian
887b5a7be0
Remove NEED_I386_TAS_ASM and just test for compiler defines.
22 years ago
Bruce Momjian
b731d04101
Test for __alpha and __alpha__.
22 years ago
PostgreSQL Daemon
55b113257c
make sure the $Id tags are converted to $PostgreSQL as well ...
22 years ago
Peter Eisentraut
c119c554ed
Improve message wording for spinlocks-missing compilation error.
22 years ago
Bruce Momjian
9821455425
Rename __arm__/__arm__ to __arm__/__arm, found by Neil Conway
23 years ago
Bruce Momjian
f7fca96366
Fix #error message to mention renamed option --disable-spinlocks.
23 years ago
Bruce Momjian
06e3ec7a54
Implement compiler #error if spinlock code not found, add configure flag
...
to bypass the error, --without-spinlocks.
23 years ago
Bruce Momjian
f3c3deb7d0
Update copyrights to 2003.
23 years ago
Tom Lane
13ac54d1ca
Since HPUX now exists for Itanium, we should decouple the assumption
...
that OS=hpux is the same as CPU=hppa. First steps at doing this.
With these patches, we still work on hppa with either gcc or HP's cc.
We might work on hpux/itanium with gcc, but I can't test it. Definitely
will not work on hpux/itanium with non-gcc compiler, for lack of spinlock
code.
23 years ago
Bruce Momjian
9132506477
Add Opteron/Itanium comment.
23 years ago
Bruce Momjian
aa62f7f74a
Add x86_64 support for spinlocks.
...
Jeffrey W. Baker
23 years ago
Bruce Momjian
7cb4278e82
Small patch to link to the proper place in the "runtime" file,
...
and to add the "schemaname" column to the description of the
pg_stats view.
Greg Sabino Mullane
23 years ago
Peter Eisentraut
1fed74f257
Support for Intel compiler on Linux
23 years ago
Tom Lane
f9ba0a7fe5
Apple's assembler likes the inlined TAS syntax too, so no reason to
...
maintain a separate out-of-line version of PPC tas() anymore.
Also fix S_UNLOCK for __powerpc64__ platforms.
23 years ago
Tom Lane
eb5e4c58d1
Tighten up register usage for inline PPC version of tas().
23 years ago
Tom Lane
cd35d601b8
Put the isync where it's supposed to be.
23 years ago
Tom Lane
fadcb01177
TAS code originally written for s390 (32-bit) does not work for s390x
...
(64-bit). Fix it. Per report from Permaine Cheung.
23 years ago
Bruce Momjian
ceb4f5ea9c
> > I'll re-check that with the ppc architecture guy here.
...
>
> ... he is now about to write an inlined version that can go into
> s_lock.h . I'll send the new patch later on...
OK, here it comes:
An inlined version of tas(), that works for both, powerpc and
powerpc64. The patch is against 7.3b5 and passes the test suite on
both architectures.
Reinhard Max
23 years ago
Tom Lane
7233aae50b
Fix PPC s_lock operations to work correctly on multi-CPU machines.
...
Need 'isync' during TAS and 'sync' during S_UNLOCK.
24 years ago