Deleted Added
full compact
setjmp.S (85528) setjmp.S (106755)
1/* $NetBSD: setjmp.S,v 1.3 1997/12/05 02:06:27 thorpej Exp $ */
1/* $NetBSD: setjmp.S,v 1.3 1997/12/05 02:06:27 thorpej Exp $ */
2/* $FreeBSD: head/lib/libc/ia64/gen/setjmp.S 85528 2001-10-26 08:26:45Z dfr $ */
2/* $FreeBSD: head/lib/libc/ia64/gen/setjmp.S 106755 2002-11-11 08:11:44Z marcel $ */
3
4/*
5 * Copyright (c) 1994, 1995 Carnegie-Mellon University.
6 * All rights reserved.
7 *
8 * Author: Chris G. Demetriou
9 *
10 * Permission to use, copy, modify and distribute this software and

--- 30 unchanged lines hidden (view full) ---

41 * setjmp(a)
42 * by restoring registers from the stack,
43 * and the previous signal state.
44 */
45
46ENTRY(setjmp, 1)
47 alloc loc0=ar.pfs,1,2,3,0
48 mov loc1=rp
3
4/*
5 * Copyright (c) 1994, 1995 Carnegie-Mellon University.
6 * All rights reserved.
7 *
8 * Author: Chris G. Demetriou
9 *
10 * Permission to use, copy, modify and distribute this software and

--- 30 unchanged lines hidden (view full) ---

41 * setjmp(a)
42 * by restoring registers from the stack,
43 * and the previous signal state.
44 */
45
46ENTRY(setjmp, 1)
47 alloc loc0=ar.pfs,1,2,3,0
48 mov loc1=rp
49 //
50 // Compensate for the pointer twiddling that setjmp does.
51 //
52 dep r14=r0,r32,0,4
53 ;;
49 ;;
54 mov out0=1 // how = SIG_BLOCK
55 mov out1=0 // set = NULL
50 mov out0=1 // how = SIG_BLOCK
51 mov out1=0 // set = NULL
56 add out2=J_SIG0+0x10,r14 // oset = &jb[J_SIG0]
52 add out2=J_SIG0,in0 // oset = &jb[J_SIG0]
57 br.call.sptk.few rp=__sys_sigprocmask
58 ;;
59 mov rp=loc1
60 mov r14=loc0
61 ;;
62 alloc r15=ar.pfs,1,0,0,0 // drop register frame
63 ;;
64 mov ar.pfs=r14 // restore ar.pfs
65 br.sptk.many _setjmp // finish saving state
66END(setjmp)
67
68 WEAK_ALIAS(longjmp,__longjmp)
69ENTRY(__longjmp, 2)
70 alloc loc0=ar.pfs,2,2,3,0
71 mov loc1=rp
53 br.call.sptk.few rp=__sys_sigprocmask
54 ;;
55 mov rp=loc1
56 mov r14=loc0
57 ;;
58 alloc r15=ar.pfs,1,0,0,0 // drop register frame
59 ;;
60 mov ar.pfs=r14 // restore ar.pfs
61 br.sptk.many _setjmp // finish saving state
62END(setjmp)
63
64 WEAK_ALIAS(longjmp,__longjmp)
65ENTRY(__longjmp, 2)
66 alloc loc0=ar.pfs,2,2,3,0
67 mov loc1=rp
72 //
73 // Compensate for the pointer twiddling that setjmp does.
74 //
75 dep r14=r0,r32,0,4
76 ;;
77 mov out0=3 // how = SIG_SETMASK
68 ;;
69 mov out0=3 // how = SIG_SETMASK
78 add out1=J_SIG0+0x10,r14 // set = &jb[J_SIG0]
70 add out1=J_SIG0,in0 // set = &jb[J_SIG0]
79 mov out2=0 // oset = NULL
80 br.call.sptk.few rp=__sys_sigprocmask
81 ;;
82 mov rp=loc1
83 mov r14=loc0
84 ;;
85 alloc r15=ar.pfs,2,0,0,0 // drop register frame
86 ;;
87 mov ar.pfs=r14 // restore ar.pfs
88 br.sptk.many _longjmp // finish restoring state
89END(__longjmp)
71 mov out2=0 // oset = NULL
72 br.call.sptk.few rp=__sys_sigprocmask
73 ;;
74 mov rp=loc1
75 mov r14=loc0
76 ;;
77 alloc r15=ar.pfs,2,0,0,0 // drop register frame
78 ;;
79 mov ar.pfs=r14 // restore ar.pfs
80 br.sptk.many _longjmp // finish restoring state
81END(__longjmp)