function.c (keep_stack_depressed): Refine check for register clobbered over call.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Wed, 5 Dec 2001 11:49:24 +0000 (11:49 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 5 Dec 2001 11:49:24 +0000 (06:49 -0500)
* function.c (keep_stack_depressed): Refine check for register
clobbered over call.

From-SVN: r47664

gcc/ChangeLog
gcc/function.c

index 2476e327b5efc9944749f17e9883d41f7a642014..2ef81affa6bf7b0ffc738fb04d06877e741b35e3 100644 (file)
@@ -1,5 +1,8 @@
 Wed Dec  5 06:26:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
+       * function.c (keep_stack_depressed): Refine check for register
+       clobbered over call.
+
        * expr.c (store_expr): When copying string constant into array,
        use functions that update memrefs instead of computations on
        addresses to better track MEMs.  Also properly handle 32/64 pointers.
index 653e2abe1404ac82f48bb8eb01e1c93bd4b5d571..3e7bf6ea5301d41715a6b3f707b1140ed0d76a57 100644 (file)
@@ -7274,7 +7274,8 @@ keep_stack_depressed (seq)
 
              for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
                if (HARD_REGNO_MODE_OK (regno, Pmode)
-                   && !fixed_regs[regno] && call_used_regs[regno]
+                   && !fixed_regs[regno]
+                   && TEST_HARD_REG_BIT (regs_invalidated_by_call, regno)
                    && !FUNCTION_VALUE_REGNO_P (regno))
                  break;