aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2002-04-12 00:52:05 -0700
committerRichard Henderson <rth@gcc.gnu.org>2002-04-12 00:52:05 -0700
commit9be408334932dd7a55741e911e34e644fe3fefed (patch)
tree30d336ac36e5d65e0f68d3dc7b5ef3da92af21cd /gcc/flow.c
parentc58c6b73f4b6809371be28bd5c166ca3f67f132c (diff)
downloadgcc-9be408334932dd7a55741e911e34e644fe3fefed.zip
gcc-9be408334932dd7a55741e911e34e644fe3fefed.tar.gz
gcc-9be408334932dd7a55741e911e34e644fe3fefed.tar.bz2
re PR bootstrap/4191 (GCC does not build for d30v-elf - needs tweaking for crtstuff.c changes)
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. From-SVN: r52205
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 332d543..627c285 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