sigsetjmp.S (55837) | sigsetjmp.S (56276) |
---|---|
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 55837 2000-01-12 09:23:48Z jasone $ | 36 * $FreeBSD: head/lib/libc/amd64/gen/sigsetjmp.S 56276 2000-01-19 07:01:40Z 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 55837 2000-01-12 09:23:48Z jasone $" | 41 .asciz "$FreeBSD: head/lib/libc/amd64/gen/sigsetjmp.S 56276 2000-01-19 07:01:40Z 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, --- 5 unchanged lines hidden (view full) --- 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) | 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, --- 5 unchanged lines hidden (view full) --- 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) |
63ALTENTRY(_libc_sigsetjmp) | |
64ENTRY(__sigsetjmp) 65 movl 8(%esp),%eax 66 movl 4(%esp),%ecx 67 movl %eax,44(%ecx) 68 testl %eax,%eax 69 jz 2f 70 PIC_PROLOGUE 71 leal 28(%ecx), %eax --- 14 unchanged lines hidden (view full) --- 86 movl %esp, 8(%ecx) 87 movl %ebp,12(%ecx) 88 movl %esi,16(%ecx) 89 movl %edi,20(%ecx) 90 fnstcw 24(%ecx) 91 xorl %eax,%eax 92 ret 93 | 63ENTRY(__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 --- 14 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 |
93#ifndef _THREAD_SAFE |
|
94ALTENTRY(siglongjmp) | 94ALTENTRY(siglongjmp) |
95ALTENTRY(_libc_siglongjmp) | 95#endif |
96ENTRY(__siglongjmp) 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 */ --- 23 unchanged lines hidden --- | 96ENTRY(__siglongjmp) 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 */ --- 23 unchanged lines hidden --- |