From b7c89afe9000e63a1c0f3e8502624191e5a6135d Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Mon, 22 Apr 2002 23:20:12 +0000 Subject: [PATCH] Generate constant for shift once. From-SVN: r52644 --- gcc/ChangeLog | 4 ++++ gcc/expmed.c | 7 +++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8e241418bba..b10f351c85c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2002-04-22 Tom Rix + + * expmed.c (init_expmed): Generate shifted constant once. + 2002-04-22 Zack Weinberg * c-lex.c (lex_charconst): Call convert to get constant in diff --git a/gcc/expmed.c b/gcc/expmed.c index 76b90fa2b43..e60ccbf7924 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -144,19 +144,18 @@ init_expmed () for (m = 1; m < MAX_BITS_PER_WORD; m++) { + rtx c_int = GEN_INT ((HOST_WIDE_INT) 1 << m); shift_cost[m] = shiftadd_cost[m] = shiftsub_cost[m] = 32000; XEXP (SET_SRC (PATTERN (shift_insn)), 1) = GEN_INT (m); if (recog (PATTERN (shift_insn), shift_insn, &dummy) >= 0) shift_cost[m] = rtx_cost (SET_SRC (PATTERN (shift_insn)), SET); - XEXP (XEXP (SET_SRC (PATTERN (shiftadd_insn)), 0), 1) - = GEN_INT ((HOST_WIDE_INT) 1 << m); + XEXP (XEXP (SET_SRC (PATTERN (shiftadd_insn)), 0), 1) = c_int; if (recog (PATTERN (shiftadd_insn), shiftadd_insn, &dummy) >= 0) shiftadd_cost[m] = rtx_cost (SET_SRC (PATTERN (shiftadd_insn)), SET); - XEXP (XEXP (SET_SRC (PATTERN (shiftsub_insn)), 0), 1) - = GEN_INT ((HOST_WIDE_INT) 1 << m); + XEXP (XEXP (SET_SRC (PATTERN (shiftsub_insn)), 0), 1) = c_int; if (recog (PATTERN (shiftsub_insn), shiftsub_insn, &dummy) >= 0) shiftsub_cost[m] = rtx_cost (SET_SRC (PATTERN (shiftsub_insn)), SET); } -- 2.30.2