OSDN Git Service

(extendsidi2): Use lwa_operand predicate.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 30 Nov 1994 23:21:37 +0000 (23:21 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 30 Nov 1994 23:21:37 +0000 (23:21 +0000)
(sign_extend load with update): New PowerPC64 pattern.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8587 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/rs6000/rs6000.md

index 0db9e1d..5343d3c 100644 (file)
 
 (define_insn ""
   [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
-       (sign_extend:DI (match_operand:SI 1 "reg_or_mem_operand" "m,r")))]
+       (sign_extend:DI (match_operand:SI 1 "lwa_operand" "m,r")))]
   "TARGET_POWERPC64"
   "@
    lwa%U1%X1 %0,%1
   [(set_attr "type" "load")])
 
 (define_insn ""
+  [(set (match_operand:DI 3 "gpc_reg_operand" "=r")
+       (sign_extend:DI
+        (mem:SI (plus:DI (match_operand:DI 1 "gpc_reg_operand" "0")
+                         (match_operand:DI 2 "gpc_reg_operand" "r")))))
+   (set (match_operand:DI 0 "gpc_reg_operand" "=b")
+       (plus:DI (match_dup 1) (match_dup 2)))]
+  "TARGET_POWERPC64"
+  "lwaux %3,%0,%2"
+  [(set_attr "type" "load")])
+
+(define_insn ""
   [(set (mem:DI (plus:DI (match_operand:DI 1 "gpc_reg_operand" "0,0")
                         (match_operand:DI 2 "reg_or_short_operand" "r,I")))
        (match_operand:DI 3 "gpc_reg_operand" "r,r"))