1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-09 06:21:09 +03:00

Add support for Solaris x86_64 using Sun's compiler.

Pierre Girard
This commit is contained in:
Bruce Momjian
2005-12-30 21:43:41 +00:00
parent c876d965f5
commit 12af9cdff4
4 changed files with 49 additions and 6 deletions

View File

@@ -0,0 +1,35 @@
/=============================================================================
/ tas.s -- test and set lock for solaris_i386
/ based on i386 ASM with modifications outlined in
/ http://www.x86-64.org/documentation/assembly
/=============================================================================
.file "tas.s"
.text
.align 16
.L1.text:
.globl tas
tas:
pushq %rbp /save prev base pointer
movq %rsp,%rbp /new base pointer
pushq %rbx /save prev bx
movq 8(%rbp),%rbx /load bx with address of lock
movq $255,%rax /put something in ax
xchgb %al,(%rbx) /swap lock value with "0"
cmpb $0,%al /did we get the lock?
jne .Locked
subq %rax,%rax /yes, we got it -- return 0
jmp .Finish
.align 8
.Locked:
movq $1,%rax /no, we didn't get it - return 1
.Finish:
popq %rbx /restore prev bx
movq %rbp,%rsp /restore stack state
popq %rbp
ret /return
.align 8
.type tas,@function
.size tas,.-tas