summaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authortbsaunde <tbsaunde@138bc75d-0d04-0410-961f-82ee72b054a4>2015-07-09 02:50:07 +0000
committertbsaunde <tbsaunde@138bc75d-0d04-0410-961f-82ee72b054a4>2015-07-09 02:50:07 +0000
commitd0b997101750568489c355817fdc34f6013666c8 (patch)
tree46c8ef20e4e8f82019d6ebb3346caa847ecb58a5 /gcc/combine.c
parentd836e31771c57738038d0dd53947516e25e2bc31 (diff)
downloadgcc-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.c21
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)