aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@cygnus.com>1998-10-29 11:21:20 +0000
committerAndrew Macleod <amacleod@gcc.gnu.org>1998-10-29 11:21:20 +0000
commit0fc1434bd0b2e9c1f3649d8b1df27e37403dda33 (patch)
tree6960abc4f81d9078c8440894dc0bdcf295614375 /gcc
parente1a5ccf7e6174cbe245af105a75223a285927407 (diff)
downloadgcc-0fc1434bd0b2e9c1f3649d8b1df27e37403dda33.zip
gcc-0fc1434bd0b2e9c1f3649d8b1df27e37403dda33.tar.gz
gcc-0fc1434bd0b2e9c1f3649d8b1df27e37403dda33.tar.bz2
except.c (emit_eh_context): Make the EH context register stay alive at -O0 so stupid.c doesn't get confused.
Thu Oct 29 14:10:22 EST 1998 Andrew MacLeod <amacleod@cygnus.com> * except.c (emit_eh_context): Make the EH context register stay alive at -O0 so stupid.c doesn't get confused. From-SVN: r23423
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/except.c8
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1dbc93a..b01e4ea 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Oct 29 14:10:22 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
+
+ * except.c (emit_eh_context): Make the EH context register stay alive
+ at -O0 so stupid.c doesn't get confused.
+
1998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
* emit-rtl.c (try_split): Do not try to split a BARRIER.
diff --git a/gcc/except.c b/gcc/except.c
index 867b4a5..d07d6bf 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -2094,6 +2094,14 @@ emit_eh_context ()
end_sequence ();
emit_insns_before (insns, insn);
+
+ /* At -O0, we must make the context register stay alive so
+ that the stupid.c register allocator doesn't get confused. */
+ if (obey_regdecls != 0)
+ {
+ insns = gen_rtx_USE (GET_MODE (XEXP (reg,0)), XEXP (reg,0));
+ emit_insn_before (insns, get_last_insn ());
+ }
}
}
}