sigsetjmp.S (56276) | sigsetjmp.S (56345) |
---|---|
1/*- 2 * Copyright (c) 1990 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * William Jolitz. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 19 unchanged lines hidden (view full) --- 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * | 1/*- 2 * Copyright (c) 1990 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * William Jolitz. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 19 unchanged lines hidden (view full) --- 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * |
36 * $FreeBSD: head/lib/libc/amd64/gen/sigsetjmp.S 56276 2000-01-19 07:01:40Z jasone $ | 36 * $FreeBSD: head/lib/libc/amd64/gen/sigsetjmp.S 56345 2000-01-20 21:58:27Z jasone $ |
37 */ 38 39#if defined(LIBC_RCS) && !defined(lint) 40 .text | 37 */ 38 39#if defined(LIBC_RCS) && !defined(lint) 40 .text |
41 .asciz "$FreeBSD: head/lib/libc/amd64/gen/sigsetjmp.S 56276 2000-01-19 07:01:40Z jasone $" | 41 .asciz "$FreeBSD: head/lib/libc/amd64/gen/sigsetjmp.S 56345 2000-01-20 21:58:27Z jasone $" |
42#endif /* LIBC_RCS and not lint */ 43 44#include "DEFS.h" 45#include "SYS.h" 46 47/*- 48 * TODO: 49 * Rename sigsetjmp to __sigsetjmp and siglongjmp to __siglongjmp, --- 4 unchanged lines hidden (view full) --- 54 * 55 * Use sigprocmask() instead of sigblock() and sigsetmask(), and 56 * check for and handle errors. 57 * 58 * Restore _all_ the registers and the signal mask atomically. Can 59 * use sigreturn() if sigreturn() works. 60 */ 61 | 42#endif /* LIBC_RCS and not lint */ 43 44#include "DEFS.h" 45#include "SYS.h" 46 47/*- 48 * TODO: 49 * Rename sigsetjmp to __sigsetjmp and siglongjmp to __siglongjmp, --- 4 unchanged lines hidden (view full) --- 54 * 55 * Use sigprocmask() instead of sigblock() and sigsetmask(), and 56 * check for and handle errors. 57 * 58 * Restore _all_ the registers and the signal mask atomically. Can 59 * use sigreturn() if sigreturn() works. 60 */ 61 |
62ALTENTRY(sigsetjmp) 63ENTRY(__sigsetjmp) | 62ENTRY(sigsetjmp) |
64 movl 8(%esp),%eax 65 movl 4(%esp),%ecx 66 movl %eax,44(%ecx) 67 testl %eax,%eax 68 jz 2f 69 PIC_PROLOGUE 70 leal 28(%ecx), %eax 71 pushl %eax /* (sigset_t*)oset */ --- 13 unchanged lines hidden (view full) --- 85 movl %esp, 8(%ecx) 86 movl %ebp,12(%ecx) 87 movl %esi,16(%ecx) 88 movl %edi,20(%ecx) 89 fnstcw 24(%ecx) 90 xorl %eax,%eax 91 ret 92 | 63 movl 8(%esp),%eax 64 movl 4(%esp),%ecx 65 movl %eax,44(%ecx) 66 testl %eax,%eax 67 jz 2f 68 PIC_PROLOGUE 69 leal 28(%ecx), %eax 70 pushl %eax /* (sigset_t*)oset */ --- 13 unchanged lines hidden (view full) --- 84 movl %esp, 8(%ecx) 85 movl %ebp,12(%ecx) 86 movl %esi,16(%ecx) 87 movl %edi,20(%ecx) 88 fnstcw 24(%ecx) 89 xorl %eax,%eax 90 ret 91 |
93#ifndef _THREAD_SAFE 94ALTENTRY(siglongjmp) 95#endif | 92#ifdef _THREAD_SAFE |
96ENTRY(__siglongjmp) | 93ENTRY(__siglongjmp) |
94#else 95ALTENTRY(__siglongjmp) 96ENTRY(siglongjmp) 97#endif |
|
97 movl 4(%esp),%edx 98 cmpl $0,44(%edx) 99 jz 2f 100 PIC_PROLOGUE 101 pushl $0 /* (sigset_t*)oset */ 102 leal 28(%edx), %eax 103 pushl %eax /* (sigset_t*)set */ 104 pushl $3 /* SIG_SETMASK */ --- 22 unchanged lines hidden --- | 98 movl 4(%esp),%edx 99 cmpl $0,44(%edx) 100 jz 2f 101 PIC_PROLOGUE 102 pushl $0 /* (sigset_t*)oset */ 103 leal 28(%edx), %eax 104 pushl %eax /* (sigset_t*)set */ 105 pushl $3 /* SIG_SETMASK */ --- 22 unchanged lines hidden --- |