Teach siglongjmp about the VFP version of the setjmp buffer.

This fixes a bug where a call to sigsetjmp followed by siglongjmp may fail
when run on a machine with VFP enabled.
This commit is contained in:
andrew 2013-07-21 12:47:33 +00:00
parent f9052e5539
commit 80d48d248e

View File

@ -57,8 +57,10 @@ ENTRY(sigsetjmp)
WEAK_ALIAS(__siglongjmp, siglongjmp)
ENTRY(siglongjmp)
ldr r2, .L_setjmp_magic
ldr r3, [r0]
teq r2, r3
ldr r2, .L_setjmp_magic /* load magic */
ldr r3, [r0] /* get magic from jmp_buf */
bic r3, r3, #(_JB_MAGIC__SETJMP ^ _JB_MAGIC__SETJMP_VFP)
/* ignore VFP-ness of magic */
teq r2, r3 /* magic correct? */
beq PIC_SYM(_C_LABEL(_longjmp), PLT)
b PIC_SYM(_C_LABEL(longjmp), PLT)