]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG.
authorJ"orn Rennecke <joern.rennecke@superh.com>
Thu, 7 Aug 2003 19:35:52 +0000 (19:35 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Thu, 7 Aug 2003 19:35:52 +0000 (20:35 +0100)
* sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG.
* sh.c (calc_live_regs): Use sh_pr_n_sets to determine if pr
needs saving on SHmedia.

From-SVN: r70227

gcc/ChangeLog
gcc/config/sh/sh.c
gcc/config/sh/sh.h

index d299f564f5b2918f42d3eb7095745aef1c98fff7..9568cca24d59612f4938884701fd4c3994fce493 100644 (file)
@@ -1,3 +1,9 @@
+2003-08-07  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG.
+       * sh.c (calc_live_regs): Use sh_pr_n_sets to determine if pr
+       needs saving on SHmedia.
+
 2003-08-07  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * config/s390/s390.md: Replace all occurrences of \\t with \t.
index 8128d4731f818494051216256310e43891fa0aa9..d64d919fbbc5bf527cfb852840e467b89711cf8c 100644 (file)
@@ -4848,7 +4848,7 @@ calc_live_regs (live_regs_mask)
      the initial value can become the PR_MEDIA_REG hard register, as seen for
      execute/20010122-1.c:test9.  */
   if (TARGET_SHMEDIA)
-    pr_live = regs_ever_live[PR_MEDIA_REG];
+    pr_live = sh_pr_n_sets ();
   else
     {
       rtx pr_initial = has_hard_reg_initial_val (Pmode, PR_REG);
@@ -4867,7 +4867,7 @@ calc_live_regs (live_regs_mask)
   has_call = TARGET_SHMEDIA ? ! leaf_function_p () : pr_live;
   for (count = 0, reg = FIRST_PSEUDO_REGISTER - 1; reg >= 0; reg--)
     {
-      if ((! TARGET_SHMEDIA && reg == PR_REG)
+      if (reg == (TARGET_SHMEDIA ? PR_MEDIA_REG : PR_REG)
          ? pr_live
          : (interrupt_handler && ! pragma_trapa)
          ? (/* Need to save all the regs ever live.  */
index cc94be2f74047ccc66944e738f39cc95e04ece5b..3ab2120e9a51a7da56f664716e70ed1e2bca429b 100644 (file)
@@ -926,7 +926,7 @@ extern char sh_additional_register_names[ADDREGNAMES_SIZE] \
      Only the lower 32bits of R10-R14 are guaranteed to be preserved   \
      across SH5 function calls.  */                                    \
   0,      0,      0,      0,      0,      0,      0,      1,           \
-  1,      1,      0,      1,      1,      1,      1,      1,           \
+  1,      1,      1,      1,      1,      1,      1,      1,           \
   1,      1,      1,      1,      0,      0,      0,      0,           \
   0,      0,      0,      0,      1,      1,      1,      1,           \
   1,      1,      1,      1,      0,      0,      0,      0,           \
@@ -946,7 +946,7 @@ extern char sh_additional_register_names[ADDREGNAMES_SIZE] \
 /* XD registers.  */                                                   \
   1,      1,      1,      1,      1,      1,      0,      0,           \
 /*"gbr",  "ap",          "pr",   "t",    "mach", "macl", "fpul", "fpscr", */   \
-  1,      1,      0,      1,      1,      1,      1,      1,           \
+  1,      1,      1,      1,      1,      1,      1,      1,           \
 /*"rap" */                                                             \
   1,                                                                   \
 }