Put return value in correct register. Don't set the condition flags
authorUlrich Drepper <drepper@redhat.com>
Thu, 20 Aug 1998 17:33:32 +0000 (17:33 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 20 Aug 1998 17:33:32 +0000 (17:33 +0000)
unnecessarily.
Restore floating point registers correctly.

sysdeps/arm/fpu/__longjmp.S

index 8afa177..25ba6b3 100644 (file)
 /* __longjmp(jmpbuf, val) */
 
 ENTRY (__longjmp)
-       movs    r2, r0
+       mov     ip, r0          /* save jmp_buf pointer */
+       
        movs    r0, r1          /* get the return value in place */
-       moveq   r1, #1          /* can't let setjmp() return zero! */
+       moveq   r0, #1          /* can't let setjmp() return zero! */
 
-       add     r2, r2, #48
-       lfmfd   f4, 4, [r2]
+       lfmia   f4, 4, [ip] !   /* load the floating point regs */
 
-       LOADREGS(ia, r2, {v1-v6, sl, fp, sp, pc})
+       LOADREGS(ia, ip, {v1-v6, sl, fp, sp, pc})
 END (__longjmp)