diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-09-09 13:06:43 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-09-09 13:06:43 +0000 |
commit | c338f2e39da17e572e0661ad6a15c59bbfc4b529 (patch) | |
tree | b56dbab169263ce9ad963b7070c7c0593dd51aea /gcc/combine.c | |
parent | d27c9b1ed7103e622b9f72ffe7e4e950443fe96b (diff) | |
download | gcc-c338f2e39da17e572e0661ad6a15c59bbfc4b529.tar.gz |
gcc/
* alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
of the associated gen_rtx_* call.
* caller-save.c (init_caller_save): Likewise.
* combine.c (find_split_point, make_extraction): Likewise.
(make_compound_operation): Likewise.
* dwarf2out.c (mem_loc_descriptor): Likewise.
* explow.c (plus_constant, probe_stack_range): Likewise.
* expmed.c (expand_mult_const): Likewise.
* expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
* reload1.c (init_reload): Likewise.
* valtrack.c (cleanup_auto_inc_dec): Likewise.
* var-tracking.c (adjust_mems): Likewise.
* modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
rather than gen_rtx_fmt_ee.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202391 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index fc566c55c16..720b8f547e8 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -4725,13 +4725,14 @@ find_split_point (rtx *loc, rtx insn, bool set_src) if (unsignedp && len <= 8) { + unsigned HOST_WIDE_INT mask + = ((unsigned HOST_WIDE_INT) 1 << len) - 1; SUBST (SET_SRC (x), gen_rtx_AND (mode, gen_rtx_LSHIFTRT (mode, gen_lowpart (mode, inner), GEN_INT (pos)), - GEN_INT (((unsigned HOST_WIDE_INT) 1 << len) - - 1))); + gen_int_mode (mask, mode))); split = find_split_point (&SET_SRC (x), insn, true); if (split && split != &SET_SRC (x)) @@ -4814,9 +4815,11 @@ find_split_point (rtx *loc, rtx insn, bool set_src) enum machine_mode mode = GET_MODE (x); unsigned HOST_WIDE_INT this_int = INTVAL (XEXP (XEXP (x, 1), 1)); HOST_WIDE_INT other_int = trunc_int_for_mode (-this_int, mode); - SUBST (*loc, gen_rtx_PLUS (mode, gen_rtx_MULT (mode, - XEXP (XEXP (x, 1), 0), - GEN_INT (other_int)), + SUBST (*loc, gen_rtx_PLUS (mode, + gen_rtx_MULT (mode, + XEXP (XEXP (x, 1), 0), + gen_int_mode (other_int, + mode)), XEXP (x, 0))); return find_split_point (loc, insn, set_src); } @@ -7258,7 +7261,9 @@ make_extraction (enum machine_mode mode, rtx inner, HOST_WIDE_INT pos, pos = width - len - pos; else pos_rtx - = gen_rtx_MINUS (GET_MODE (pos_rtx), GEN_INT (width - len), pos_rtx); + = gen_rtx_MINUS (GET_MODE (pos_rtx), + gen_int_mode (width - len, GET_MODE (pos_rtx)), + pos_rtx); /* POS may be less than 0 now, but we check for that below. Note that it can only be less than 0 if !MEM_P (inner). */ } @@ -7490,7 +7495,7 @@ make_compound_operation (rtx x, enum rtx_code in_code) multval = -multval; } multval = trunc_int_for_mode (multval, mode); - new_rtx = gen_rtx_MULT (mode, new_rtx, GEN_INT (multval)); + new_rtx = gen_rtx_MULT (mode, new_rtx, gen_int_mode (multval, mode)); } break; |