diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2013-09-09 13:06:43 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2013-09-09 13:06:43 +0000 |
commit | 4789c0cef392722e1c084eba900c0c469fba3bc1 (patch) | |
tree | b56dbab169263ce9ad963b7070c7c0593dd51aea /gcc/combine.c | |
parent | a811f7cbad669cb3398ada5fd29cea19f7dff1d3 (diff) | |
download | gcc-4789c0cef392722e1c084eba900c0c469fba3bc1.zip gcc-4789c0cef392722e1c084eba900c0c469fba3bc1.tar.gz gcc-4789c0cef392722e1c084eba900c0c469fba3bc1.tar.bz2 |
alias.c (addr_side_effect_eval): Use gen_int_mode with the mode of the associated gen_rtx_* call.
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.
From-SVN: r202391
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 fc566c5..720b8f5 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; |