modified i386_solaris port
submitted by: dr. george
This commit is contained in:
parent
31cae34d07
commit
14cd0ca3bd
@ -7,7 +7,7 @@
|
||||
#
|
||||
#
|
||||
# IDENTIFICATION
|
||||
# $Header: /cvsroot/pgsql/src/backend/port/i386_solaris/Attic/Makefile.inc,v 1.3 1996/07/25 07:27:08 scrappy Exp $
|
||||
# $Header: /cvsroot/pgsql/src/backend/port/i386_solaris/Attic/Makefile.inc,v 1.4 1996/07/25 19:48:24 scrappy Exp $
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
@ -15,6 +15,6 @@ CFLAGS+= -DUSE_POSIX_TIME -DNEED_ISINF -DNEED_RUSAGE -DNO_EMPTY_STMTS
|
||||
|
||||
LDADD+= -ll -ldl
|
||||
|
||||
SUBSRCS+= port.c
|
||||
SUBSRCS+= port.c tas.s
|
||||
|
||||
HEADERS+= machine.h port-protos.h rusagestub.h
|
||||
|
35
src/backend/port/i386_solaris/tas.s
Normal file
35
src/backend/port/i386_solaris/tas.s
Normal file
@ -0,0 +1,35 @@
|
||||
/=============================================================================
|
||||
/ tas.s -- test and set lock for i386_solaris
|
||||
/=============================================================================
|
||||
|
||||
.file "tas.s"
|
||||
.text
|
||||
.align 16
|
||||
.L1.text:
|
||||
|
||||
.globl tas
|
||||
tas:
|
||||
pushl %ebp /save prev base pointer
|
||||
movl %esp,%ebp /new base pointer
|
||||
pushl %ebx /save prev bx
|
||||
movl 8(%ebp),%ebx /load bx with address of lock
|
||||
pushl %ebx /save prev bx
|
||||
movl 8(%ebp),%ebx /load bx with address of lock
|
||||
movl $255,%eax /put something in ax
|
||||
xchgb %al,(%ebx) /swap lock value with "0"
|
||||
cmpb $0,%al /did we get the lock?
|
||||
jne .Locked
|
||||
subl %eax,%eax /yes, we got it -- return 0
|
||||
jmp .Finish
|
||||
.align 4
|
||||
.Locked:
|
||||
movl $1,%eax /no, we didn't get it - return 1
|
||||
.Finish:
|
||||
popl %ebx /restore prev bx
|
||||
movl %ebp,%esp /restore stack state
|
||||
popl %ebp
|
||||
ret /return
|
||||
.align 4
|
||||
.type tas,@function
|
||||
.size tas,.-tas
|
||||
|
Loading…
Reference in New Issue
Block a user