m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers form all_used_regs.
authorKazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
Fri, 8 Oct 2004 08:21:38 +0000 (08:21 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Fri, 8 Oct 2004 08:21:38 +0000 (08:21 +0000)
m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers form
  all_used_regs. Update call_really_used_regs.
  (CALL_REALLY_USED_REGISTERS): Define.
m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs with call_really_used_regs.

From-SVN: r88737

gcc/ChangeLog
gcc/config/m32r/m32r.c
gcc/config/m32r/m32r.h

index 4d4cfda9a029aa8a6b47b463feb12d20433449f7..2906982aa3fc8210b6031b9ede4bd97aaa5c81ea 100644 (file)
@@ -1,3 +1,11 @@
+2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
+
+       * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
+       fixed registers form all_used_regs. Update call_really_used_regs.
+       (CALL_REALLY_USED_REGISTERS): Define.
+       * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
+       with call_really_used_regs.
+
 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
 
        * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
index 9e3404a18916aeacc04c3ea050b0a229fd4701f4..b5621568997d76cdc378c2414096d2b077fc65aa 100644 (file)
@@ -1591,8 +1591,8 @@ static struct m32r_frame_info zero_frame_info;
    The return address and frame pointer are treated separately.
    Don't consider them here.  */
 #define MUST_SAVE_REGISTER(regno, interrupt_p) \
-((regno) != RETURN_ADDR_REGNUM && (regno) != FRAME_POINTER_REGNUM \
&& (regs_ever_live[regno] && (!call_used_regs[regno] || interrupt_p)))
+  ((regno) != RETURN_ADDR_REGNUM && (regno) != FRAME_POINTER_REGNUM \
 && (regs_ever_live[regno] && (!call_really_used_regs[regno] || interrupt_p)))
 
 #define MUST_SAVE_FRAME_POINTER (regs_ever_live[FRAME_POINTER_REGNUM])
 #define MUST_SAVE_RETURN_ADDR   (regs_ever_live[RETURN_ADDR_REGNUM] || current_function_profile)
index 9befbeee5704225daa11437089856fdf7cbb1249..d5aa56b82e6e9069a84acc4348779de585e39fdf 100644 (file)
@@ -633,6 +633,8 @@ extern enum m32r_sdata m32r_sdata;
   SUBTARGET_CALL_USED_REGISTERS        \
 }
 
+#define CALL_REALLY_USED_REGISTERS CALL_USED_REGISTERS
+
 /* Zero or more C statements that may conditionally modify two variables
    `fixed_regs' and `call_used_regs' (both of type `char []') after they
    have been initialized from the two preceding macros.
@@ -649,7 +651,10 @@ extern enum m32r_sdata m32r_sdata;
   do                                                    \
     {                                                   \
       if (flag_pic)                                     \
-          fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1;      \
+       {                                                \
+         fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1;       \
+         call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1;   \
+       }                                                \
     }                                                   \
   while (0)
 #endif