From af6107bfff39f9f35b2d820b1541b99733623ba8 Mon Sep 17 00:00:00 2001 From: kenner Date: Thu, 6 Dec 2001 02:44:57 +0000 Subject: * 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 --- gcc/ChangeLog | 5 +++++ gcc/function.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'gcc') 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 + + * 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 * 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) -- cgit v1.2.1