diff options
author | Daniel Jacobowitz <dan@codesourcery.com> | 2005-11-15 14:32:13 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@gcc.gnu.org> | 2005-11-15 14:32:13 +0000 |
commit | 5d7c0add81c2d9ff338e76bf58dce99f9a0410e8 (patch) | |
tree | 0cc5b87b3f2c8c3b76db1833ac1ac21ab542efaa /gcc/config/arm/lib1funcs.asm | |
parent | 9de61fcb9b63fabbe305dab069bf49d8d1e6195a (diff) | |
download | gcc-5d7c0add81c2d9ff338e76bf58dce99f9a0410e8.zip gcc-5d7c0add81c2d9ff338e76bf58dce99f9a0410e8.tar.gz gcc-5d7c0add81c2d9ff338e76bf58dce99f9a0410e8.tar.bz2 |
lib1funcs.asm (div0): Call raise instead of making syscalls.
* config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
of making syscalls.
* config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define. Set r7 also.
From-SVN: r107018
Diffstat (limited to 'gcc/config/arm/lib1funcs.asm')
-rw-r--r-- | gcc/config/arm/lib1funcs.asm | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/gcc/config/arm/lib1funcs.asm b/gcc/config/arm/lib1funcs.asm index 364d9fe..8494a97 100644 --- a/gcc/config/arm/lib1funcs.asm +++ b/gcc/config/arm/lib1funcs.asm @@ -989,29 +989,15 @@ LSYM(Lover12): #ifdef L_dvmd_lnx @ GNU/Linux division-by zero handler. Used in place of L_dvmd_tls -/* Constants taken from <asm/unistd.h> and <asm/signal.h> */ +/* Constant taken from <asm/signal.h>. */ #define SIGFPE 8 -#define __NR_SYSCALL_BASE 0x900000 -#define __NR_getpid (__NR_SYSCALL_BASE+ 20) -#define __NR_kill (__NR_SYSCALL_BASE+ 37) -#define __NR_gettid (__NR_SYSCALL_BASE+ 224) -#define __NR_tkill (__NR_SYSCALL_BASE+ 238) .code 32 FUNC_START div0 stmfd sp!, {r1, lr} - swi __NR_gettid - cmn r0, #1000 - swihs __NR_getpid - cmnhs r0, #1000 - RETLDM r1 hs - mov ip, r0 - mov r1, #SIGFPE - swi __NR_tkill - movs r0, r0 - movne r0, ip - swine __NR_kill + mov r0, #SIGFPE + bl SYM(raise) __PLT__ RETLDM r1 FUNC_END div0 |