Fix register renaming problem
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Mar 2001 14:04:23 +0000 (14:04 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Mar 2001 14:04:23 +0000 (14:04 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40152 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/ia64/ia64.c

index 879827b..0ca9c9b 100644 (file)
@@ -1,5 +1,8 @@
 2001-03-01  Bernd Schmidt  <bernds@redhat.com>
 
+       * config/ia64/ia64.c (ia64_hard_regno_rename_ok): Disallow renaming
+       from reg 4 if current_function_calls_setjmp.
+
        * reload1.c (eliminate_regs_in_insn): Restrict the special case
        code not to try to optimize adds with anything but a REG destination.
 
index 1a4baa0..bfe0d55 100644 (file)
@@ -2436,6 +2436,10 @@ ia64_hard_regno_rename_ok (from, to)
   if (PR_REGNO_P (from) && PR_REGNO_P (to))
     return (from & 1) == (to & 1);
 
+  /* Reg 4 contains the saved gp; we can't reliably rename this.  */
+  if (from == GR_REG (4) && current_function_calls_setjmp)
+    return 0;
+
   return 1;
 }