On 18/04/16 19:25, Claudiu Zissulescu wrote:
Forgot to add the reload cases. Here it is the updated patch.
//Claudiu
gcc/
2016-04-18 Claudiu Zissulescu <claz...@synopsys.com>
* config/arc/arc.md (mulsidi3): Change operand 0 predicate to
register_operand.
(umulsidi3): Likewise.
(indirect_jump): Fix jump instruction assembly patterns.
(arcset<code>): Change operand 1 predicate to nonmemory_operand.
(arcsetltu, arcsetgeu): Likewise.
ChangeLog omission: You are also adding an r/n/r alternative.
(arcsethi, arcsetls): Fix pattern.
Otherwise this is OK.
If the constant / register comparisons come from an expander, in
general the expander should be fixed to swap the operands and
use the swapped comparison code, to get canonical rtl.
OTOH, constant re-materialization during register allocation can change
a reg-reg into
a constant-reg comparison, and at that stage, canonicalization would not
be expected.