diff options
author | tbsaunde <tbsaunde@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-07-09 02:50:07 +0000 |
---|---|---|
committer | tbsaunde <tbsaunde@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-07-09 02:50:07 +0000 |
commit | d0b997101750568489c355817fdc34f6013666c8 (patch) | |
tree | 46c8ef20e4e8f82019d6ebb3346caa847ecb58a5 /gcc/combine.c | |
parent | d836e31771c57738038d0dd53947516e25e2bc31 (diff) | |
download | gcc-d0b997101750568489c355817fdc34f6013666c8.tar.gz |
always define SHORT_IMMEDIATES_SIGN_EXTEND
gcc/ChangeLog:
2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* combine.c (update_rsp_from_reg_equal): Don't check if
SHORT_IMMEDIATES_SIGN_EXTEND is defined.
(reg_nonzero_bits_for_combine): Likewise.
* config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
1.
* config/frv/frv.h: Likewise.
* config/lm32/lm32.h: Likewise.
* config/mep/mep.h: Likewise.
* config/mips/mips.h: Likewise.
* config/rs6000/rs6000.h: Likewise.
* config/sh/sh.h: Likewise.
* config/tilegx/tilegx.h (enum reg_class): Likewise.
* config/tilepro/tilepro.h: Likewise.
* defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
* doc/tm.texi: Regenerate.
* doc/tm.texi.in: Adjust.
* rtlanal.c (nonzero_bits1): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225593 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index 19aa0e1e6b5..14d1468699a 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -1624,7 +1624,6 @@ setup_incoming_promotions (rtx_insn *first) } } -#ifdef SHORT_IMMEDIATES_SIGN_EXTEND /* If MODE has a precision lower than PREC and SRC is a non-negative constant that would appear negative in MODE, sign-extend SRC for use in nonzero_bits because some machines (maybe most) will actually do the sign-extension and @@ -1644,7 +1643,6 @@ sign_extend_short_imm (rtx src, machine_mode mode, unsigned int prec) return src; } -#endif /* Update RSP for pseudo-register X from INSN's REG_EQUAL note (if one exists) and SET. */ @@ -1661,11 +1659,12 @@ update_rsp_from_reg_equal (reg_stat_type *rsp, rtx_insn *insn, const_rtx set, if (reg_equal_note) reg_equal = XEXP (reg_equal_note, 0); -#ifdef SHORT_IMMEDIATES_SIGN_EXTEND - src = sign_extend_short_imm (src, GET_MODE (x), BITS_PER_WORD); - if (reg_equal) - reg_equal = sign_extend_short_imm (reg_equal, GET_MODE (x), BITS_PER_WORD); -#endif + if (SHORT_IMMEDIATES_SIGN_EXTEND) + { + src = sign_extend_short_imm (src, GET_MODE (x), BITS_PER_WORD); + if (reg_equal) + reg_equal = sign_extend_short_imm (reg_equal, GET_MODE (x), BITS_PER_WORD); + } /* Don't call nonzero_bits if it cannot change anything. */ if (rsp->nonzero_bits != ~(unsigned HOST_WIDE_INT) 0) @@ -9824,10 +9823,10 @@ reg_nonzero_bits_for_combine (const_rtx x, machine_mode mode, if (tem) { -#ifdef SHORT_IMMEDIATES_SIGN_EXTEND - tem = sign_extend_short_imm (tem, GET_MODE (x), - GET_MODE_PRECISION (mode)); -#endif + if (SHORT_IMMEDIATES_SIGN_EXTEND) + tem = sign_extend_short_imm (tem, GET_MODE (x), + GET_MODE_PRECISION (mode)); + return tem; } else if (nonzero_sign_valid && rsp->nonzero_bits) |