+2009-10-22 Andrew Stubbs <ams@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+
+ * sysdeps/arm/eabi/setjmp.S (__sigsetjmp): Replace deprecated
+ instruction fstmiax with vstmia.
+ Correct register conflict and comment.
+ * sysdeps/arm/eabi/__longjmp.S (__longjmp): Use vldmia not fldmiax.
+ Don't clobber r1/a2 register before testing IWMMXT hwcap.
+
2009-10-22 Julian Brown <julian@codesourcery.com>
* sysdeps/arm/elf/start.S (_start): Avoid dependency on PC pipeline
beq Lno_vfp
/* Restore the VFP registers. */
- /* Following instruction is fldmiax ip!, {d8-d15}. */
- ldc p11, cr8, [r12], #68
+ /* Following instruction is vldmia ip!, {d8-d15}. */
+ ldc p11, cr8, [r12], #64
/* Restore the floating-point status register. */
- ldr r1, [ip], #4
- /* Following instruction is fmxr fpscr, r1. */
- mcr p10, 7, r1, cr1, cr0, 0
+ ldr a3, [ip], #4
+ /* Following instruction is fmxr fpscr, a3. */
+ mcr p10, 7, a3, cr1, cr0, 0
Lno_vfp:
tst a2, #HWCAP_ARM_IWMMXT
tst a3, #HWCAP_ARM_VFP
beq Lno_vfp
- /* Store the VFP registers. */
- /* Following instruction is fstmiax ip!, {d8-d15}. */
- stc p11, cr8, [r12], #68
+ /* Store the VFP registers.
+ Don't use VFP instructions directly because this code
+ is used in non-VFP multilibs. */
+ /* Following instruction is vstmia ip!, {d8-d15}. */
+ stc p11, cr8, [ip], #64
/* Store the floating-point status register. */
- /* Following instruction is fmrx r2, fpscr. */
- mrc p10, 7, r2, cr1, cr0, 0
- str r2, [ip], #4
+ /* Following instruction is vmrs a4, fpscr. */
+ mrc p10, 7, a4, cr1, cr0, 0
+ str a4, [ip], #4
Lno_vfp:
tst a3, #HWCAP_ARM_IWMMXT