[combine] Check WORD_REGISTER_OPERATIONS normally rather than through preprocessor
* combine.c (simplify_comparison): Convert preprocessor check of WORD_REGISTER_OPERATIONS into runtime check. From-SVN: r231899
This commit is contained in:
parent
18fccdb440
commit
dda5c83188
2 changed files with 7 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2015-12-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
|
* combine.c (simplify_comparison): Convert preprocessor check of
|
||||||
|
WORD_REGISTER_OPERATIONS into runtime check.
|
||||||
|
|
||||||
2015-12-22 Eric Botcazou <ebotcazou@adacore.com>
|
2015-12-22 Eric Botcazou <ebotcazou@adacore.com>
|
||||||
|
|
||||||
PR debug/60756
|
PR debug/60756
|
||||||
|
|
|
@ -11437,10 +11437,10 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1)
|
||||||
/* Try a few ways of applying the same transformation to both operands. */
|
/* Try a few ways of applying the same transformation to both operands. */
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
#if !WORD_REGISTER_OPERATIONS
|
|
||||||
/* The test below this one won't handle SIGN_EXTENDs on these machines,
|
/* The test below this one won't handle SIGN_EXTENDs on these machines,
|
||||||
so check specially. */
|
so check specially. */
|
||||||
if (code != GTU && code != GEU && code != LTU && code != LEU
|
if (!WORD_REGISTER_OPERATIONS
|
||||||
|
&& code != GTU && code != GEU && code != LTU && code != LEU
|
||||||
&& GET_CODE (op0) == ASHIFTRT && GET_CODE (op1) == ASHIFTRT
|
&& GET_CODE (op0) == ASHIFTRT && GET_CODE (op1) == ASHIFTRT
|
||||||
&& GET_CODE (XEXP (op0, 0)) == ASHIFT
|
&& GET_CODE (XEXP (op0, 0)) == ASHIFT
|
||||||
&& GET_CODE (XEXP (op1, 0)) == ASHIFT
|
&& GET_CODE (XEXP (op1, 0)) == ASHIFT
|
||||||
|
@ -11460,7 +11460,6 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1)
|
||||||
op0 = SUBREG_REG (XEXP (XEXP (op0, 0), 0));
|
op0 = SUBREG_REG (XEXP (XEXP (op0, 0), 0));
|
||||||
op1 = SUBREG_REG (XEXP (XEXP (op1, 0), 0));
|
op1 = SUBREG_REG (XEXP (XEXP (op1, 0), 0));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/* If both operands are the same constant shift, see if we can ignore the
|
/* If both operands are the same constant shift, see if we can ignore the
|
||||||
shift. We can if the shift is a rotate or if the bits shifted out of
|
shift. We can if the shift is a rotate or if the bits shifted out of
|
||||||
|
|
Loading…
Add table
Reference in a new issue