Add floating point ld/st indexed patterns.
authorTorbjorn Granlund <tege@gnu.org>
Thu, 7 Jan 1993 21:30:22 +0000 (21:30 +0000)
committerTorbjorn Granlund <tege@gnu.org>
Thu, 7 Jan 1993 21:30:22 +0000 (21:30 +0000)
From-SVN: r3145

gcc/config/pa/pa.md

index 82b95d385d249344280302f26a4a10110e882007..deddab5fc99e3b352577515fc2cbf7be62949ee9 100644 (file)
   [(set_attr "type" "fpalu,move,fpstore,store,fpload,load,fpload,load")
    (set_attr "length" "1,2,1,2,1,2,3,3")])
 
+(define_insn ""
+  [(set (match_operand:DF 0 "register_operand" "=fx")
+       (mem:DF (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "r")
+                                 (const_int 8))
+                        (match_operand:SI 2 "register_operand" "r"))))]
+  "! TARGET_DISABLE_INDEXING"
+  "flddx,s %1(0,%2),%0"
+  [(set_attr "type" "fpload")
+   (set_attr "length" "1")])
+
+(define_insn ""
+  [(set (mem:DF (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "r")
+                                 (const_int 8))
+                        (match_operand:SI 2 "register_operand" "r")))
+       (match_operand:DF 0 "register_operand" "fx"))]
+  "! TARGET_DISABLE_INDEXING"
+  "fstdx,s %0,%1(0,%2)"
+  [(set_attr "type" "fpstore")
+   (set_attr "length" "1")])
+
 (define_expand "movdi"
   [(set (match_operand:DI 0 "reg_or_nonsymb_mem_operand" "")
        (match_operand:DI 1 "general_operand" ""))]
    stw%M0 %r1,%0"
   [(set_attr "type" "fpalu,move,load,fpload,fpload,load,fpstore,store")
    (set_attr "length" "1,1,2,2,1,1,1,1")])
+
+(define_insn ""
+  [(set (match_operand:SF 0 "register_operand" "=fx")
+       (mem:SF (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "r")
+                                 (const_int 4))
+                        (match_operand:SI 2 "register_operand" "r"))))]
+  "! TARGET_DISABLE_INDEXING"
+  "fldwx,s %1(0,%2),%0"
+  [(set_attr "type" "fpload")
+   (set_attr "length" "1")])
+
+(define_insn ""
+  [(set (mem:SF (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "r")
+                                 (const_int 4))
+                        (match_operand:SI 2 "register_operand" "r")))
+       (match_operand:SF 0 "register_operand" "fx"))]
+  "! TARGET_DISABLE_INDEXING"
+  "fstwx,s %0,%1(0,%2)"
+  [(set_attr "type" "fpstore")
+   (set_attr "length" "1")])
 \f
 ;;- zero extension instructions