Patch from David Mosberger to fix 32 host cross 64 target bug.
* combine.c (simplify_logical, case AND): Only call simplify_and_const_int if the mode is no wider than HOST_WIDE_INT or the constant is positive. From-SVN: r27517
This commit is contained in:
parent
69c9f0fbbc
commit
2e8f9abf17
@ -1,3 +1,9 @@
|
||||
Mon Jun 14 12:57:38 1999 David Mosberger <davidm@hpl.hp.com>
|
||||
|
||||
* combine.c (simplify_logical, case AND): Only call
|
||||
simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
|
||||
or the constant is positive.
|
||||
|
||||
Mon Jun 14 11:43:41 1999 Nick Clifton <nickc@cygnus.com>
|
||||
|
||||
* configure.in: Fix typo in rs6000-ibm-aix4 case.
|
||||
|
@ -4902,7 +4902,12 @@ simplify_logical (x, last)
|
||||
&& ! side_effects_p (op1))
|
||||
x = gen_binary (AND, mode, XEXP (XEXP (op0, 0), 0), op1);
|
||||
|
||||
if (GET_CODE (op1) == CONST_INT)
|
||||
/* We can call simplify_and_const_int only if we don't lose
|
||||
any (sign) bits when converting INTVAL (op1) to
|
||||
"unsigned HOST_WIDE_INT". */
|
||||
if (GET_CODE (op1) == CONST_INT
|
||||
&& (GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT
|
||||
|| INTVAL (op1) > 0))
|
||||
{
|
||||
x = simplify_and_const_int (x, mode, op0, INTVAL (op1));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user