.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 | |
movl %eax, 1 | |
ret | |
iszero: | |
movl %eax, 0 | |
ret | |