diff options
author | Eric Andersen <andersen@codepoet.org> | 2002-01-31 15:49:34 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2002-01-31 15:49:34 +0000 |
commit | 8dd9c51eb2f6c5dc659b426dc3bd114751adb405 (patch) | |
tree | 5eeeb11b1f38660340b91c83128cdb88cad6d65b /libc/sysdeps/linux/arm/setjmp.S | |
parent | 290b06002e9d168438c418c508e6ab5431b05b62 (diff) |
Fixup setjmp and longjmp so they behave themselves properly now
on both x86 and arm...
-Erik
Diffstat (limited to 'libc/sysdeps/linux/arm/setjmp.S')
-rw-r--r-- | libc/sysdeps/linux/arm/setjmp.S | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/libc/sysdeps/linux/arm/setjmp.S b/libc/sysdeps/linux/arm/setjmp.S index a993f8c59..166e4efab 100644 --- a/libc/sysdeps/linux/arm/setjmp.S +++ b/libc/sysdeps/linux/arm/setjmp.S @@ -17,25 +17,24 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include <features.h> #define _SETJMP_H #define _ASM #include <bits/setjmp.h> - /* Binary compatibility entry point. */ -.globl _setjmp; -.type _setjmp,#function -.align 4; -_setjmp: - mov r1, #0 - - .globl __sigsetjmp; -.type __sigsetjmp,#function +.type __sigsetjmp,%function .align 4; __sigsetjmp: /* Save registers */ - stmia r0, {v1-v6, sl, fp, sp, lr} +#ifdef __UCLIBC_HAS_FLOATS__ + sfmea f4, 4, [r0]! +#endif + stmia r0, {v1-v6, sl, fp, sp, lr} + + /* Restore pointer to jmp_buf */ + sub r0, r0, #48 /* Make a tail call to __sigjmp_save; it takes the same args. */ - B __sigjmp_save + B __sigjmp_save (PLT) .size __sigsetjmp,.-__sigsetjmp; |