From 8b760293d7b65995bb5d80729777d927d839ad5e Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Fri, 8 Mar 1996 11:10:35 -0800 Subject: [PATCH] (reg_unused_after): Return 0 if see a JUMP_INSN. From-SVN: r11501 --- gcc/config/sh/sh.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 144a5b0..cae782a 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -2338,7 +2338,7 @@ fp_one_operand (op) /* Return non-zero if REG is not used after INSN. We assume REG is a reload reg, and therefore does - not live past labels or calls or jumps. */ + not live past labels. It may live past calls or jumps though. */ int reg_unused_after (reg, insn) rtx reg; @@ -2369,11 +2369,14 @@ reg_unused_after (reg, insn) /* else */ #endif + if (code == JUMP_INSN) + return 0; + /* If this is a sequence, we must handle them all at once. We could have for instance a call that sets the target register, and a insn in a delay slot that uses the register. In this case, we must return 0. */ - if (code == INSN && GET_CODE (PATTERN (insn)) == SEQUENCE) + else if (code == INSN && GET_CODE (PATTERN (insn)) == SEQUENCE) { int i; int retval = 0; -- 2.7.4