aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/function.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2476e32..2ef81af 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/function.c b/gcc/function.c
index 653e2ab..3e7bf6e 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -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;