re PR c/8588 (ICE in extract_insn, at recog.c:2148)
2002-11-19 �Eric Botcazou �<ebotcazou@libertysurf.fr> PR c/8588 * optabs.c (expand_binop): Convert CONST_INTs in shift operations too. From-SVN: r59274
This commit is contained in:
parent
a500466ba1
commit
35f1c975a3
|
@ -1,3 +1,9 @@
|
||||||
|
2002-11-19 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||||
|
|
||||||
|
PR c/8588
|
||||||
|
* optabs.c (expand_binop): Convert CONST_INTs in shift
|
||||||
|
operations too.
|
||||||
|
|
||||||
2002-11-19 Roger Sayle <roger@eyesopen.com>
|
2002-11-19 Roger Sayle <roger@eyesopen.com>
|
||||||
|
|
||||||
* gcse.c (gcse_emit_move_after): Correct typo in REG_EQUAL note.
|
* gcse.c (gcse_emit_move_after): Correct typo in REG_EQUAL note.
|
||||||
|
|
11
gcc/optabs.c
11
gcc/optabs.c
|
@ -781,9 +781,8 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
|
||||||
/* In case the insn wants input operands in modes different from
|
/* In case the insn wants input operands in modes different from
|
||||||
those of the actual operands, convert the operands. It would
|
those of the actual operands, convert the operands. It would
|
||||||
seem that we don't need to convert CONST_INTs, but we do, so
|
seem that we don't need to convert CONST_INTs, but we do, so
|
||||||
that they're properly zero-extended or sign-extended for their
|
that they're properly zero-extended, sign-extended or truncated
|
||||||
modes; shift operations are an exception, because the second
|
for their mode. */
|
||||||
operand need not be extended to the mode of the result. */
|
|
||||||
|
|
||||||
if (GET_MODE (op0) != mode0 && mode0 != VOIDmode)
|
if (GET_MODE (op0) != mode0 && mode0 != VOIDmode)
|
||||||
xop0 = convert_modes (mode0,
|
xop0 = convert_modes (mode0,
|
||||||
|
@ -796,7 +795,7 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
|
||||||
xop1 = convert_modes (mode1,
|
xop1 = convert_modes (mode1,
|
||||||
GET_MODE (op1) != VOIDmode
|
GET_MODE (op1) != VOIDmode
|
||||||
? GET_MODE (op1)
|
? GET_MODE (op1)
|
||||||
: (shift_op ? mode1 : mode),
|
: mode,
|
||||||
xop1, unsignedp);
|
xop1, unsignedp);
|
||||||
|
|
||||||
/* Now, if insn's predicates don't allow our operands, put them into
|
/* Now, if insn's predicates don't allow our operands, put them into
|
||||||
|
@ -2234,8 +2233,8 @@ expand_twoval_binop (binoptab, op0, op1, targ0, targ1, unsignedp)
|
||||||
/* In case the insn wants input operands in modes different from
|
/* In case the insn wants input operands in modes different from
|
||||||
those of the actual operands, convert the operands. It would
|
those of the actual operands, convert the operands. It would
|
||||||
seem that we don't need to convert CONST_INTs, but we do, so
|
seem that we don't need to convert CONST_INTs, but we do, so
|
||||||
that they're properly zero-extended or sign-extended for their
|
that they're properly zero-extended, sign-extended or truncated
|
||||||
modes. */
|
for their mode. */
|
||||||
|
|
||||||
if (GET_MODE (op0) != mode0 && mode0 != VOIDmode)
|
if (GET_MODE (op0) != mode0 && mode0 != VOIDmode)
|
||||||
xop0 = convert_modes (mode0,
|
xop0 = convert_modes (mode0,
|
||||||
|
|
Loading…
Reference in New Issue