aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/pa/pa.md5
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")])