libc/newlib/libc/sys/sysvi386/_setjmp.S

25 lines
384 B
ArmAsm

/
/ our buffer looks like:
/ eax,ebx,ecx,edx,esi,edi,esp,ebp,pc
.globl _setjmp
.globl setjmp
_setjmp:
setjmp:
pushl %ebx
movl 8(%esp), %ebx
movl %eax, (%ebx)
popl %eax
movl %eax, 4(%ebx)
movl %ecx, 8(%ebx)
movl %edx, 12(%ebx)
movl %esi, 16(%ebx)
movl %edi, 20(%ebx)
movl %esp, 24(%ebx)
movl %ebp, 28(%ebx)
movl (%esp), %eax
movl %eax, 32(%ebx)
xorl %eax, %eax
ret