aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPhilip Blundell <philb@gnu.org>2002-02-20 21:39:56 +0000
committerPhil Blundell <pb@gcc.gnu.org>2002-02-20 21:39:56 +0000
commit9338ffe610bc23fd9d31bd22a83cb5fdadd05d0a (patch)
tree21a465f0eb88f4b89bc008cb68ced0cce4b4f0d7 /gcc
parent04fc13943f17cca7158731e464da904577ff6163 (diff)
downloadgcc-9338ffe610bc23fd9d31bd22a83cb5fdadd05d0a.zip
gcc-9338ffe610bc23fd9d31bd22a83cb5fdadd05d0a.tar.gz
gcc-9338ffe610bc23fd9d31bd22a83cb5fdadd05d0a.tar.bz2
re PR target/5705 (code generated for ARM interrupt("IRQ") attribute)
2002-02-20 Philip Blundell <philb@gnu.org> PR 5705 * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro. From-SVN: r49911
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.h7
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 879ebbd..8f4d599 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-02-20 Philip Blundell <philb@gnu.org>
+
+ PR 5705
+ * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
+
2002-02-20 Richard Henderson <rth@redhat.com>
PR c/5615
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index c68c867..bf989f4 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -1027,6 +1027,13 @@ extern const char * structure_size_string;
16, 17, 18, 19, 20, 21, 22, 23, \
24, 25, 26 \
}
+
+/* Interrupt functions can only use registers that have already been
+ saved by the prologue, even if they would normally be
+ call-clobbered. */
+#define HARD_REGNO_RENAME_OK(SRC, DST) \
+ (! IS_INTERRUPT (cfun->machine->func_type) || \
+ regs_ever_live[DST])
/* Register and constant classes. */