mirror of
https://github.com/postgres/postgres.git
synced 2025-07-18 17:42:25 +03:00
modified i386_solaris port
submitted by: dr. george
This commit is contained in:
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
# IDENTIFICATION
|
# 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
|
LDADD+= -ll -ldl
|
||||||
|
|
||||||
SUBSRCS+= port.c
|
SUBSRCS+= port.c tas.s
|
||||||
|
|
||||||
HEADERS+= machine.h port-protos.h rusagestub.h
|
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
|
||||||
|
|
Reference in New Issue
Block a user