mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-02 16:23:56 +08:00
re PR target/17626 (Recent peephole2:s may cause internal compiler errors)
PR target/17626 * config/cris/cris.md (moverside, movemside): Rename variable "reg" to "otherop". To generate canonical RTX, check that otherop isn't constant instead of checking that operand 1 is a register. From-SVN: r87988
This commit is contained in:
parent
3d295b3a83
commit
e758023dab
@ -1,3 +1,10 @@
|
||||
2004-09-23 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
PR target/17626
|
||||
* config/cris/cris.md (moverside, movemside): Rename variable
|
||||
"reg" to "otherop". To generate canonical RTX, check that otherop
|
||||
isn't constant instead of checking that operand 1 is a register.
|
||||
|
||||
2004-09-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
|
||||
|
@ -4901,17 +4901,19 @@
|
||||
[(set (match_dup 4) (match_dup 6))
|
||||
(set (match_dup 0) (plus:SI (match_dup 7) (match_dup 8)))])]
|
||||
{
|
||||
rtx reg
|
||||
rtx otherop
|
||||
= rtx_equal_p (operands[2], operands[0]) ? operands[3] : operands[2];
|
||||
|
||||
if (REG_S_P (operands[1]))
|
||||
/* Make sure we have canonical RTX so we match the insn pattern - a
|
||||
register or MULT in the first operand, not a constant. */
|
||||
if (CONSTANT_P (otherop))
|
||||
{
|
||||
operands[7] = operands[1];
|
||||
operands[8] = reg;
|
||||
operands[8] = otherop;
|
||||
}
|
||||
else
|
||||
{
|
||||
operands[7] = reg;
|
||||
operands[7] = otherop;
|
||||
operands[8] = operands[1];
|
||||
}
|
||||
operands[6]
|
||||
@ -4949,17 +4951,19 @@
|
||||
[(set (match_dup 6) (match_dup 5))
|
||||
(set (match_dup 0) (plus:SI (match_dup 7) (match_dup 8)))])]
|
||||
{
|
||||
rtx reg
|
||||
rtx otherop
|
||||
= rtx_equal_p (operands[2], operands[0]) ? operands[3] : operands[2];
|
||||
|
||||
if (REG_S_P (operands[1]))
|
||||
/* Make sure we have canonical RTX so we match the insn pattern - a
|
||||
register or MULT in the first operand, not a constant. */
|
||||
if (CONSTANT_P (otherop))
|
||||
{
|
||||
operands[7] = operands[1];
|
||||
operands[8] = reg;
|
||||
operands[8] = otherop;
|
||||
}
|
||||
else
|
||||
{
|
||||
operands[7] = reg;
|
||||
operands[7] = otherop;
|
||||
operands[8] = operands[1];
|
||||
}
|
||||
operands[6]
|
||||
|
Loading…
Reference in New Issue
Block a user