diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/pa/pa.md | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4a87cda..9c2da5f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-03-24 John David Anglin <danglin@gcc.gnu.org> + + PR target/70319 + * config/pa/pa.md (bswapdi2): Use a scratch register. + 2016-03-24 Richard Henderson <rth@redhat.com> PR middle-end/69845 diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index 2587c05..75100d2 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -1229,9 +1229,10 @@ (define_insn "bswapdi2" [(set (match_operand:DI 0 "register_operand" "=&r") - (bswap:DI (match_operand:DI 1 "register_operand" "+r")))] + (bswap:DI (match_operand:DI 1 "register_operand" "r"))) + (clobber (match_scratch:DI 2 "=r"))] "TARGET_64BIT" - "permh,3210 %1,%1\;hshl %1,8,%0\;hshr,u %1,8,%1\;or %0,%1,%0" + "permh,3210 %1,%2\;hshl %2,8,%0\;hshr,u %2,8,%2\;or %0,%2,%0" [(set_attr "type" "multi") (set_attr "length" "16")]) |