From e3c6252002eac3c1feb387ecc753ccfebd21abcd Mon Sep 17 00:00:00 2001 From: "J\"orn Rennecke" Date: Wed, 9 Oct 2002 15:07:19 +0000 Subject: [PATCH] * sh.md (ffssi2): Fix emitted code. From-SVN: r57984 --- gcc/ChangeLog | 4 ++++ gcc/config/sh/sh.md | 13 +++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fa25ad7351e..5df0457561d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Wed Oct 9 15:54:49 2002 J"orn Rennecke + + * sh.md (ffssi2): Fix emitted code. + 2002-10-09 Ulrich Weigand * cse.c (insn_live_p): Pass insn pattern, not full insn diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index b23766474cf..2c02ee37313 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -10380,14 +10380,15 @@ rtx discratch = gen_reg_rtx (DImode); rtx last; - emit_insn (gen_adddi3z_media (discratch, operands[1], - force_reg (SImode, GEN_INT (-1)))); - emit_insn (gen_andcdi3 (discratch, discratch, - simplify_gen_subreg (DImode, operands[1], - SImode, 0))); + emit_insn (gen_adddi3 (discratch, + simplify_gen_subreg (DImode, operands[1], SImode, 0), + GEN_INT (-1))); + emit_insn (gen_andcdi3 (discratch, + simplify_gen_subreg (DImode, operands[1], SImode, 0), + discratch)); emit_insn (gen_nsbsi (scratch, discratch)); last = emit_insn (gen_subsi3 (operands[0], - force_reg (SImode, GEN_INT (-64)), scratch)); + force_reg (SImode, GEN_INT (63)), scratch)); REG_NOTES (last) = gen_rtx_EXPR_LIST (REG_EQUAL, gen_rtx_FFS (SImode, operands[0]), REG_NOTES (last)); -- 2.30.2