From 014830a56db576f8fabdb74dedd312bf4b0d9423 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 9 Oct 1992 14:13:13 -0400 Subject: [PATCH] (mark_target_live_regs): Fix bug in last change. From-SVN: r2385 --- gcc/reorg.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/gcc/reorg.c b/gcc/reorg.c index 869c79af7d4..4a87e40b8eb 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -2171,20 +2171,10 @@ mark_target_live_regs (target, res) if (GET_CODE (PATTERN (insn)) == USE) { /* If INSN is a USE made by update_block, we care about the - underlying insn. Any registers set or referenced by the - underlying insn should be treated as if the insn were - located here without the USE. */ + underlying insn. Any registers set by the underlying insn + are live since the insn is being done somewhere else. */ if (GET_RTX_CLASS (GET_CODE (XEXP (PATTERN (insn), 0))) == 'i') - { - rtx inner = XEXP (PATTERN (insn), 0); - - mark_referenced_resources (inner, &needed, 1); - mark_set_resources (inner, &set, 0, 1); - - COPY_HARD_REG_SET (scratch, set.regs); - AND_COMPL_HARD_REG_SET (scratch, needed.regs); - AND_COMPL_HARD_REG_SET (res->regs, scratch); - } + mark_set_resources (XEXP (PATTERN (insn), 0), res, 0, 1); /* All other USE insns are to be ignored. */ continue; -- 2.30.2