alpha.c (alpha_emit_conditional_move): Do not swap comparison operands when that would create non-canonical rtl.
* config/alpha/alpha.c (alpha_emit_conditional_move): Do not swap comparison operands when that would create non-canonical rtl. From-SVN: r38247
This commit is contained in:
parent
34c659e2cf
commit
c53f9f5bda
@ -1,5 +1,8 @@
|
||||
2000-12-14 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* config/alpha/alpha.c (alpha_emit_conditional_move): Do not swap
|
||||
comparison operands when that would create non-canonical rtl.
|
||||
|
||||
* config/i386/i386.md (umulsi3_highpart): Remove * from name.
|
||||
(smulsi3_highpart): Likewise.
|
||||
|
||||
|
@ -1908,9 +1908,14 @@ alpha_emit_conditional_move (cmp, mode)
|
||||
|
||||
case GE: case GT: case GEU: case GTU:
|
||||
/* These must be swapped. */
|
||||
cmp_code = swap_condition (code);
|
||||
code = NE;
|
||||
tem = op0, op0 = op1, op1 = tem;
|
||||
if (op1 == CONST0_RTX (cmp_mode))
|
||||
cmp_code = code, code = NE;
|
||||
else
|
||||
{
|
||||
cmp_code = swap_condition (code);
|
||||
code = NE;
|
||||
tem = op0, op0 = op1, op1 = tem;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -1958,8 +1963,11 @@ alpha_emit_conditional_move (cmp, mode)
|
||||
|
||||
case GE: case GT: case GEU: case GTU:
|
||||
/* These must be swapped. */
|
||||
code = swap_condition (code);
|
||||
tem = op0, op0 = op1, op1 = tem;
|
||||
if (op1 != CONST0_RTX (cmp_mode))
|
||||
{
|
||||
code = swap_condition (code);
|
||||
tem = op0, op0 = op1, op1 = tem;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user