2003-09-30 17:47:42 +00:00
|
|
|
.globl _setlabel
|
|
|
|
|
.type _setlabel,@function
|
|
|
|
|
|
|
|
|
|
_setlabel:
|
|
|
|
|
movl 4(%esp), %eax
|
|
|
|
|
movl 0(%esp), %edx
|
|
|
|
|
movl %edx, 0(%eax)
|
|
|
|
|
movl %ebx, 4(%eax)
|
|
|
|
|
movl %esp, 8(%eax)
|
|
|
|
|
movl %ebp, 12(%eax)
|
|
|
|
|
movl %esi, 16(%eax)
|
|
|
|
|
movl %edi, 20(%eax)
|
|
|
|
|
xorl %eax, %eax
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.globl _gotolabel
|
|
|
|
|
.type _gotolabel,@function
|
|
|
|
|
|
|
|
|
|
_gotolabel:
|
|
|
|
|
movl 4(%esp), %edx
|
|
|
|
|
movl 0(%edx), %ecx
|
|
|
|
|
movl 4(%edx), %ebx
|
|
|
|
|
movl 8(%edx), %esp
|
|
|
|
|
movl 12(%edx), %ebp
|
|
|
|
|
movl 16(%edx), %esi
|
|
|
|
|
movl 20(%edx), %edi
|
|
|
|
|
xorl %eax, %eax
|
|
|
|
|
incl %eax
|
|
|
|
|
movl %ecx, 0(%esp)
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.globl _xinc
|
|
|
|
|
_xinc:
|
|
|
|
|
movl 4(%esp), %eax
|
|
|
|
|
lock incl 0(%eax)
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.globl _xdec
|
|
|
|
|
_xdec:
|
|
|
|
|
movl 4(%esp), %eax
|
|
|
|
|
lock decl 0(%eax)
|
|
|
|
|
jz iszero
|
2003-12-11 17:48:38 +00:00
|
|
|
movl $1, %eax
|
2003-09-30 17:47:42 +00:00
|
|
|
ret
|
|
|
|
|
iszero:
|
2003-12-11 17:48:38 +00:00
|
|
|
movl $0, %eax
|
2003-09-30 17:47:42 +00:00
|
|
|
ret
|
|
|
|
|
|