diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2002-04-12 00:52:05 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-04-12 00:52:05 -0700 |
commit | 9be408334932dd7a55741e911e34e644fe3fefed (patch) | |
tree | 30d336ac36e5d65e0f68d3dc7b5ef3da92af21cd /gcc/flow.c | |
parent | c58c6b73f4b6809371be28bd5c166ca3f67f132c (diff) | |
download | gcc-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.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -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 |