cris: Correct output templates in define_subst patterns.
authorHans-Peter Nilsson <hp@axis.com>
Sun, 12 Jul 2020 19:58:58 +0000 (21:58 +0200)
committerHans-Peter Nilsson <hp@axis.com>
Mon, 13 Jul 2020 08:13:35 +0000 (10:13 +0200)
commitf4ac1a7fee8235c3be7660089b0654e6f05e36bb
treeee8ac3f4b6d8d1072a76bfdc22ee73f0efd2b6a9
parent79fcdd2dd9fea53a65e1feaa09f4fb63a4a4af6a
cris: Correct output templates in define_subst patterns.

Whoops.  This little gem had the effect of making the output
operand (0) constraints disappear but not the input operand (1)
constraints for define_subst:ed patterns, probably because
there's another (match_dup 1) in the output template (not
investigated).

That went surprisingly unnoticed until I added a pass leaning
just a little bit harder on the define_subst:ed patterns and
then only by the libgfortran library generating assembly with
nominally incorrect syntax.  (There was a move to a special
register from a general register, and it incorrectly matched a
pattern affecting condition codes.)

gcc:
* config/cris/cris.md ("setnz_subst", "setnz_subst", "setcc_subst"):
Use match_dup in output template, not match_operand.
gcc/config/cris/cris.md