source: trunk/minix/lib/gnu/rts/_longjmp.gs@ 9

Last change on this file since 9 was 9, checked in by Mattia Monga, 13 years ago

Minix 3.1.2a

File size: 792 bytes
Line 
1/ _longjmp.gnu.s
2/
3/ Created: Oct 15, 1993 by Philip Homburg <philip@cs.vu.nl>
4
5.text
6.globl __longjmp
7__longjmp:
8 movl 4(%esp), %eax # jmp_buf
9 cmpl $0, 0(%eax) # save mask?
10 je 1f
11 leal 4(%eax), %ebx # pointer to sigset_t
12 pushl %ebx
13 call ___oldsigset # restore mask
14 addl $4, %esp
15 movl 4(%esp), %eax # jmp_buf
161:
17 movl 8(%esp), %ecx # result value
18 movl 12(%eax), %esp # restore stack pointer
19
20 movl 8(%eax), %ebx # restore program counter
21 movl %ebx, 0(%esp)
22
23 pushl %ecx # save result code
24
25 movl 16(%eax), %ebp # restore frame pointer
26 movl 20(%eax), %ebx
27 movl 24(%eax), %ecx
28 movl 28(%eax), %edx
29 movl 32(%eax), %esi
30 movl 36(%eax), %edi
31 pop %eax
32 testl %eax, %eax
33 jz 1f
34 ret
351: movl $1, %eax
36 ret
37
38/ $PchId: _longjmp.gnu.s,v 1.4 1996/03/12 19:30:02 philip Exp $
Note: See TracBrowser for help on using the repository browser.