pa.md (sh[123]add): Use "nonmemory_operand" instead of "register_operand" as the...
authorJeff Law <law@gcc.gnu.org>
Mon, 23 Nov 1992 19:51:33 +0000 (12:51 -0700)
committerJeff Law <law@gcc.gnu.org>
Mon, 23 Nov 1992 19:51:33 +0000 (12:51 -0700)
* pa.md (sh[123]add): Use "nonmemory_operand" instead of
"register_operand" as the predicate for the first operand.

From-SVN: r2777

gcc/config/pa/pa.md

index e78e86fc6380a6febccf5e5bacdf8c9f074386ed..1eff3599b85cbb4e234f2825794a5603418a70a6 100644 (file)
   [(set_attr "type" "load")
    (set_attr "length" "1")])
 
+;; Using nonmemory_operand works around a bug in reload.  For 2.4 fix
+;; reload and use register_operand instead.
 (define_insn ""
   [(set (match_operand:SI 0 "register_operand" "=r")
        (plus:SI (mult:SI (match_operand:SI 2 "register_operand" "r")
                          (const_int 2))
-                (match_operand:SI 1 "register_operand" "r")))]
+                (match_operand:SI 1 "nonmemory_operand" "r")))]
   ""
   "sh1add %2,%1,%0")
 
   [(set (match_operand:SI 0 "register_operand" "=r")
        (plus:SI (mult:SI (match_operand:SI 2 "register_operand" "r")
                          (const_int 4))
-                (match_operand:SI 1 "register_operand" "r")))]
+                (match_operand:SI 1 "nonmemory_operand" "r")))]
   ""
   "sh2add %2,%1,%0")
 
   [(set (match_operand:SI 0 "register_operand" "=r")
        (plus:SI (mult:SI (match_operand:SI 2 "register_operand" "r")
                          (const_int 8))
-                (match_operand:SI 1 "register_operand" "r")))]
+                (match_operand:SI 1 "nonmemory_operand" "r")))]
   ""
   "sh3add %2,%1,%0")