pa.md (add high part and dp register): Split into two patterns, one for normal code...
authorJeff Law <law@gcc.gnu.org>
Thu, 1 Oct 1992 17:06:29 +0000 (11:06 -0600)
committerJeff Law <law@gcc.gnu.org>
Thu, 1 Oct 1992 17:06:29 +0000 (11:06 -0600)
* pa.md (add high part and dp register): Split into two patterns,
one for normal code, one for kernels.  Kernel version only allows
"r1" as the destination register.

From-SVN: r2298

gcc/config/pa/pa.md

index f2651c5b9daf4e53107ae1e40c66888da39d068d..6e726069873cb2183d091ea6f6f499be372dd554 100644 (file)
   [(set (match_operand:SI 0 "register_operand" "=a,&?*r")
        (plus:SI (match_operand:SI 1 "register_operand" "r,r")
                 (high:SI (match_operand 2 "" ""))))]
-  ""
+  "!TARGET_KERNEL"
   "@
    addil L'%G2,%1
    ldil L'%G2,%0\;add %0,%1,%0"
   [(set_attr "type" "binary,binary")
    (set_attr "length" "1,2")])
 
+(define_insn ""
+  [(set (match_operand:SI 0 "register_operand" "=a")
+       (plus:SI (match_operand:SI 1 "register_operand" "r")
+                (high:SI (match_operand 2 "" ""))))]
+  "TARGET_KERNEL"
+  "@
+   addil L'%G2,%1"
+  [(set_attr "type" "binary")
+   (set_attr "length" "1")])
+
 (define_split
   [(set (match_operand:SI 0 "register_operand" "")
        (plus:SI (match_operand:SI 1 "register_operand" "")