sigsetjmp.S (256281) | sigsetjmp.S (271337) |
---|---|
1/* $NetBSD: sigsetjmp.S,v 1.6 2013/04/19 16:50:22 matt Exp $ */ 2 3/* 4 * Copyright (c) 1997 Mark Brinicombe 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 19 unchanged lines hidden (view full) --- 28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32 * SUCH DAMAGE. 33 */ 34 35#include <machine/asm.h> | 1/* $NetBSD: sigsetjmp.S,v 1.6 2013/04/19 16:50:22 matt Exp $ */ 2 3/* 4 * Copyright (c) 1997 Mark Brinicombe 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 19 unchanged lines hidden (view full) --- 28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32 * SUCH DAMAGE. 33 */ 34 35#include <machine/asm.h> |
36__FBSDID("$FreeBSD: stable/10/lib/libc/arm/gen/sigsetjmp.S 253518 2013-07-21 12:47:33Z andrew $"); | 36__FBSDID("$FreeBSD: stable/10/lib/libc/arm/gen/sigsetjmp.S 271337 2014-09-09 22:24:01Z ian $"); |
37 38#include <machine/setjmp.h> 39 40/* 41 * C library -- sigsetjmp, siglongjmp 42 * 43 * longjmp(a,v) 44 * will generate a "return(v)" from the last call to 45 * setjmp(a, m) 46 * by restoring registers from the stack. 47 * The previous signal state is restored. 48 */ 49 50ENTRY(sigsetjmp) 51 teq r1, #0 52 beq PIC_SYM(_C_LABEL(_setjmp), PLT) 53 b PIC_SYM(_C_LABEL(setjmp), PLT) | 37 38#include <machine/setjmp.h> 39 40/* 41 * C library -- sigsetjmp, siglongjmp 42 * 43 * longjmp(a,v) 44 * will generate a "return(v)" from the last call to 45 * setjmp(a, m) 46 * by restoring registers from the stack. 47 * The previous signal state is restored. 48 */ 49 50ENTRY(sigsetjmp) 51 teq r1, #0 52 beq PIC_SYM(_C_LABEL(_setjmp), PLT) 53 b PIC_SYM(_C_LABEL(setjmp), PLT) |
54END(sigsetjmp) |
|
54 55.L_setjmp_magic: 56 .word _JB_MAGIC__SETJMP 57WEAK_ALIAS(__siglongjmp, siglongjmp) 58 59ENTRY(siglongjmp) 60 ldr r2, .L_setjmp_magic /* load magic */ 61 ldr r3, [r0] /* get magic from jmp_buf */ 62 bic r3, r3, #(_JB_MAGIC__SETJMP ^ _JB_MAGIC__SETJMP_VFP) 63 /* ignore VFP-ness of magic */ 64 teq r2, r3 /* magic correct? */ 65 beq PIC_SYM(_C_LABEL(_longjmp), PLT) 66 b PIC_SYM(_C_LABEL(longjmp), PLT) | 55 56.L_setjmp_magic: 57 .word _JB_MAGIC__SETJMP 58WEAK_ALIAS(__siglongjmp, siglongjmp) 59 60ENTRY(siglongjmp) 61 ldr r2, .L_setjmp_magic /* load magic */ 62 ldr r3, [r0] /* get magic from jmp_buf */ 63 bic r3, r3, #(_JB_MAGIC__SETJMP ^ _JB_MAGIC__SETJMP_VFP) 64 /* ignore VFP-ness of magic */ 65 teq r2, r3 /* magic correct? */ 66 beq PIC_SYM(_C_LABEL(_longjmp), PLT) 67 b PIC_SYM(_C_LABEL(longjmp), PLT) |
68END(siglongjmp) |
|