diff options
Diffstat (limited to 'newlib/libc/sys/sysvi386/_longjmp.S')
-rw-r--r-- | newlib/libc/sys/sysvi386/_longjmp.S | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/newlib/libc/sys/sysvi386/_longjmp.S b/newlib/libc/sys/sysvi386/_longjmp.S deleted file mode 100644 index 691409b0b..000000000 --- a/newlib/libc/sys/sysvi386/_longjmp.S +++ /dev/null @@ -1,31 +0,0 @@ -/ -/ our buffer looks like: -/ eax,ebx,ecx,edx,esi,edi,esp,ebp,pc -/ -/ _longjmp is called with two parameters: jmp_buf*,int -/ jmp_buf* is at 4(%esp), int is at 8(%esp) -/ retaddr is, of course, at (%esp) - - .globl _longjmp - .globl longjmp -_longjmp: -longjmp: - movl 4(%esp), %ebx / address of buf - movl 8(%esp), %eax / store return value - - movl 24(%ebx), %esp / restore stack - movl 32(%ebx), %edi -/ Next line sets up return address. - movl %edi, 0(%esp) - movl 8(%ebx), %ecx - movl 12(%ebx), %edx - movl 16(%ebx), %esi - movl 20(%ebx), %edi - movl 28(%ebx), %ebp - movl 4(%ebx), %ebx - testl %eax,%eax - jne bye - incl %eax / eax hold 0 if we are here -bye: - ret - |