summaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-04-12 07:52:05 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-04-12 07:52:05 +0000
commitf3cb52fc298256b40ac29a4ed315eedda710f9aa (patch)
tree30d336ac36e5d65e0f68d3dc7b5ef3da92af21cd /gcc/flow.c
parentc69bb58b20cc4f58879198bb2bd386354ae61e71 (diff)
downloadgcc-f3cb52fc298256b40ac29a4ed315eedda710f9aa.tar.gz
PR bootstrap/4191
* config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef. * flow.c (mark_used_reg): Manage reg_cond_dead properly for modes spanning multiple hard regs. * recog.c (peephole2_optimize): Rebuild jump labels as needed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52205 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 332d5434f68..627c28550fe 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -3610,6 +3610,10 @@ mark_used_reg (pbi, reg, cond, insn)
/* Mark the register as being live. */
for (i = regno_first; i <= regno_last; ++i)
{
+#ifdef HAVE_conditional_execution
+ int this_was_live = REGNO_REG_SET_P (pbi->reg_live, i);
+#endif
+
SET_REGNO_REG_SET (pbi->reg_live, i);
#ifdef HAVE_conditional_execution
@@ -3621,7 +3625,7 @@ mark_used_reg (pbi, reg, cond, insn)
struct reg_cond_life_info *rcli;
rtx ncond;
- if (some_was_live)
+ if (this_was_live)
{
node = splay_tree_lookup (pbi->reg_cond_dead, i);
if (node == NULL)
@@ -3663,7 +3667,7 @@ mark_used_reg (pbi, reg, cond, insn)
SET_REGNO_REG_SET (pbi->reg_cond_reg, REGNO (XEXP (cond, 0)));
}
}
- else if (some_was_live)
+ else if (this_was_live)
{
/* The register may have been conditionally live previously, but
is now unconditionally live. Remove it from the conditionally