summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-06 02:44:57 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-06 02:44:57 +0000
commitaf6107bfff39f9f35b2d820b1541b99733623ba8 (patch)
tree5a614ea9a6af080379f728f06077fca1b8c1d098 /gcc
parent67accb92b02c9357c24b0811a05439ecade3e415 (diff)
downloadppe42-gcc-af6107bfff39f9f35b2d820b1541b99733623ba8.tar.gz
ppe42-gcc-af6107bfff39f9f35b2d820b1541b99733623ba8.zip
* function.c (keep_stack_depressed): Check global_live_at_start
of EXIT_BLOCK for temp register and verify it isn't in equiv_reg_src. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47706 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/function.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d47d1db87ca..ec150de028d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Dec 5 19:18:53 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * function.c (keep_stack_depressed): Check global_live_at_start
+ of EXIT_BLOCK for temp register and verify it isn't in equiv_reg_src.
+
2001-12-05 David O'Brien <obrien@FreeBSD.org>
* config.gcc (powerpc-*-freebsd*): Use the proper tmake_file files,
diff --git a/gcc/function.c b/gcc/function.c
index 82a71d3e327..8c26a7ede87 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -7241,7 +7241,12 @@ keep_stack_depressed (seq)
if (HARD_REGNO_MODE_OK (regno, Pmode)
&& !fixed_regs[regno]
&& TEST_HARD_REG_BIT (regs_invalidated_by_call, regno)
- && !FUNCTION_VALUE_REGNO_P (regno))
+ && !REGNO_REG_SET_P (EXIT_BLOCK_PTR->global_live_at_start,
+ regno)
+ && !refers_to_regno_p (regno,
+ regno + HARD_REGNO_NREGS (regno,
+ Pmode),
+ info.equiv_reg_src, NULL))
break;
if (regno == FIRST_PSEUDO_REGISTER)
OpenPOWER on IntegriCloud