Deleted Added
full compact
38a39,42
> #ifdef __ARM_EABI__
> .fpu vfp
> #endif
>
42c46
< __FBSDID("$FreeBSD: head/lib/libc/arm/gen/setjmp.S 251405 2013-06-05 07:37:45Z andrew $");
---
> __FBSDID("$FreeBSD: head/lib/libc/arm/gen/setjmp.S 251514 2013-06-07 22:01:06Z andrew $");
63a68,88
>
> #ifdef __ARM_EABI__
> ldr r2, .Lfpu_present
> #ifdef PIC
> GOT_INIT(r3, .Lsetjmp_got, .Lsetjmp_gotinit)
> ldr r2, [r2, r3]
> #else
> ldr r2, [r2]
> #endif
> teq r2, #0 /* do we have a FPU? */
> beq 1f /* no, don't save VFP registers */
>
> orr r1, r1, #(_JB_MAGIC_SETJMP ^ _JB_MAGIC_SETJMP_VFP)
> /* change magic to VFP magic */
> add r2, r0, #(_JB_REG_D8 * 4)
> vstmia r2, {d8-d15}
> vmrs r2, fpscr
> str r2, [r0, #(_JB_REG_FPSCR * 4)]
> 1:
> #endif /* __ARM_EABI__ */
>
73a99,103
> #ifdef __ARM_EABI__
> GOT_INITSYM(.Lsetjmp_got, .Lsetjmp_gotinit)
> .Lfpu_present:
> .word PIC_SYM(_libc_arm_fpu_present, GOTOFF)
> #endif /* __ARM_EABI__ */
81c111,112
< teq r2, ip
---
> bic r3, r2, #(_JB_MAGIC_SETJMP ^ _JB_MAGIC_SETJMP_VFP)
> teq r3, ip
91a123,133
> #ifdef __ARM_EABI__
> tst r2, #(_JB_MAGIC_SETJMP ^ _JB_MAGIC_SETJMP_VFP)
> /* is this a VFP magic? */
> beq 1f /* no, don't restore VFP */
> add ip, r0, #(_JB_REG_D8 * 4)
> vldmia ip, {d8-d15}
> ldr ip, [r0, #(_JB_REG_FPSCR * 4)]
> vmsr fpscr, ip
> 1:
> #endif /* __ARM_EABI__ */
>