re PR target/5705 (code generated for ARM interrupt("IRQ") attribute)
authorPhilip Blundell <philb@gnu.org>
Wed, 20 Feb 2002 21:39:56 +0000 (21:39 +0000)
committerPhil Blundell <pb@gcc.gnu.org>
Wed, 20 Feb 2002 21:39:56 +0000 (21:39 +0000)
2002-02-20  Philip Blundell  <philb@gnu.org>

PR 5705
* config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.

From-SVN: r49911

gcc/ChangeLog
gcc/config/arm/arm.h

index 879ebbd..8f4d599 100644 (file)
@@ -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
index c68c867..bf989f4 100644 (file)
@@ -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])
 \f
 /* Register and constant classes.  */