summaryrefslogtreecommitdiff
path: root/gcc/reg-stack.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2002-11-10 19:59:26 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2002-11-10 19:59:26 +0000
commit440bc43b9111fde12734cf179c23e7106fac724d (patch)
tree16d43ad70bb84e479c47f08124ac9ecff0a91304 /gcc/reg-stack.c
parent280895aeb05e11921c46cb7ff5711f7852fa06be (diff)
downloadgcc-440bc43b9111fde12734cf179c23e7106fac724d.tar.gz
FOrgot to commit the file itself. Changelog entry is already at:
* reg-stack.c (compensate_edge): Fix sanity check. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58988 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r--gcc/reg-stack.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 4d37cecc886..18bfeca3c75 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -2553,7 +2553,11 @@ compensate_edge (e, file)
abort ();
eh1:
+ /* We are sure that there is st(0) live, otherwise we won't compensate.
+ For complex return values, we may have st(1) live as well. */
SET_HARD_REG_BIT (tmp, FIRST_STACK_REG);
+ if (TEST_HARD_REG_BIT (regstack.reg_set, FIRST_STACK_REG + 1))
+ SET_HARD_REG_BIT (tmp, FIRST_STACK_REG + 1);
GO_IF_HARD_REG_EQUAL (regstack.reg_set, tmp, eh2);
abort ();
eh2: