diff --git a/gcc/ChangeLog b/gcc/ChangeLog index acb54aec2a3..a7247838a88 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-03-24 Paul Brook + + * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push. + * config/arm/linux-eabi.h: Remove legacy syscall hack. + 2007-03-24 Richard Henderson * config/ia64/constraints.md: New file. diff --git a/gcc/config/arm/lib1funcs.asm b/gcc/config/arm/lib1funcs.asm index 4d455aa1917..3dce2374285 100644 --- a/gcc/config/arm/lib1funcs.asm +++ b/gcc/config/arm/lib1funcs.asm @@ -1062,10 +1062,9 @@ LSYM(Lover12): /* Constant taken from . */ #define SIGFPE 8 - .code 32 - FUNC_START div0 + ARM_FUNC_START div0 - stmfd sp!, {r1, lr} + do_push {r1, lr} mov r0, #SIGFPE bl SYM(raise) __PLT__ RETLDM r1 diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h index 7215c0e9404..fe78f0f5347 100644 --- a/gcc/config/arm/linux-eabi.h +++ b/gcc/config/arm/linux-eabi.h @@ -65,8 +65,7 @@ #undef LIBGCC_SPEC /* Clear the instruction cache from `beg' to `end'. This makes an - inline system call to SYS_cacheflush. It is modified to work with - both the original and EABI-only syscall interfaces. */ + inline system call to SYS_cacheflush. */ #undef CLEAR_INSN_CACHE #define CLEAR_INSN_CACHE(BEG, END) \ { \ @@ -74,7 +73,7 @@ register unsigned long _end __asm ("a2") = (unsigned long) (END); \ register unsigned long _flg __asm ("a3") = 0; \ register unsigned long _scno __asm ("r7") = 0xf0002; \ - __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \ + __asm __volatile ("swi 0 @ sys_cacheflush" \ : "=r" (_beg) \ : "0" (_beg), "r" (_end), "r" (_flg), "r" (_scno)); \ }