aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2007-03-25 01:07:45 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2007-03-25 01:07:45 +0000
commit3303be154cf041e2bd173ef5b2939f300949a7ea (patch)
tree3b74dfdc90d68f13bcad68ba1ec291c6ab98176b /gcc
parent81b780b061ac64ca484d917be1c70ac4a2d5b909 (diff)
downloadgcc-3303be154cf041e2bd173ef5b2939f300949a7ea.zip
gcc-3303be154cf041e2bd173ef5b2939f300949a7ea.tar.gz
gcc-3303be154cf041e2bd173ef5b2939f300949a7ea.tar.bz2
lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
2007-03-24 Paul Brook <paul@codesourcery.com> * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push. * config/arm/linux-eabi.h: Remove legacy syscall hack. From-SVN: r123192
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/lib1funcs.asm5
-rw-r--r--gcc/config/arm/linux-eabi.h5
3 files changed, 9 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index acb54ae..a724783 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-24 Paul Brook <paul@codesourcery.com>
+
+ * 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 <rth@redhat.com>
* config/ia64/constraints.md: New file.
diff --git a/gcc/config/arm/lib1funcs.asm b/gcc/config/arm/lib1funcs.asm
index 4d455aa..3dce237 100644
--- a/gcc/config/arm/lib1funcs.asm
+++ b/gcc/config/arm/lib1funcs.asm
@@ -1062,10 +1062,9 @@ LSYM(Lover12):
/* Constant taken from <asm/signal.h>. */
#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 7215c0e..fe78f0f5 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)); \
}