sigsetjmp.S (85528) | sigsetjmp.S (106755) |
---|---|
1/* $NetBSD: sigsetjmp.S,v 1.2 1996/10/17 03:08:07 cgd Exp $ */ | 1/* $NetBSD: sigsetjmp.S,v 1.2 1996/10/17 03:08:07 cgd Exp $ */ |
2/* $FreeBSD: head/lib/libc/ia64/gen/sigsetjmp.S 85528 2001-10-26 08:26:45Z dfr $ */ | 2/* $FreeBSD: head/lib/libc/ia64/gen/sigsetjmp.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 --- 29 unchanged lines hidden (view full) --- 40 * the last call to 41 * sigsetjmp(a, mask) 42 * by restoring registers from the stack. 43 * If `mask' is non-zero, the previous signal 44 * state will be restored. 45 */ 46 47ENTRY(sigsetjmp, 2) | 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 --- 29 unchanged lines hidden (view full) --- 40 * the last call to 41 * sigsetjmp(a, mask) 42 * by restoring registers from the stack. 43 * If `mask' is non-zero, the previous signal 44 * state will be restored. 45 */ 46 47ENTRY(sigsetjmp, 2) |
48 // 49 // Compensate for the pointer twiddling that setjmp does. 50 // 51 dep r14=r0,r32,0,4 52 ;; 53 add r14=J_SIGMASK+0x10,r14 // place to save mask | 48 add r14=J_SIGMASK,in0 // place to save mask 49 cmp.ne p6,p7=0,in1 // save signal state? |
54 ;; 55 st8 [r14]=in1 // save mask value | 50 ;; 51 st8 [r14]=in1 // save mask value |
56 cmp.ne p6,p7=0,in1 // save signal state? | |
57(p6) br.cond.dptk.many setjmp 58(p7) br.cond.dpnt.many _setjmp 59END(sigsetjmp) 60 61 WEAK_ALIAS(siglongjmp,__siglongjmp) 62ENTRY(__siglongjmp, 2) | 52(p6) br.cond.dptk.many setjmp 53(p7) br.cond.dpnt.many _setjmp 54END(sigsetjmp) 55 56 WEAK_ALIAS(siglongjmp,__siglongjmp) 57ENTRY(__siglongjmp, 2) |
63 // 64 // Compensate for the pointer twiddling that setjmp does. 65 // 66 dep r14=r0,r32,0,4 67 ;; 68 add r14=J_SIGMASK+0x10,r14 // address of mask value | 58 add r14=J_SIGMASK,in0 // address of mask value |
69 ;; 70 ld8 r14=[r14] 71 ;; 72 cmp.ne p6,p7=0,r14 // did we save signals? 73(p6) br.cond.dptk.many longjmp 74(p7) br.cond.dpnt.many _longjmp 75END(__siglongjmp) | 59 ;; 60 ld8 r14=[r14] 61 ;; 62 cmp.ne p6,p7=0,r14 // did we save signals? 63(p6) br.cond.dptk.many longjmp 64(p7) br.cond.dpnt.many _longjmp 65END(__siglongjmp) |