source: trunk/minix/lib/gnu/rts/_setjmp.gs@ 20

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

Minix 3.1.2a

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