(*push_fp_multi): New pattern.
authorRichard Earnshaw <erich@gnu.org>
Wed, 16 Jul 1997 14:54:40 +0000 (14:54 +0000)
committerRichard Earnshaw <erich@gnu.org>
Wed, 16 Jul 1997 14:54:40 +0000 (14:54 +0000)
From-SVN: r14459

gcc/config/arm/arm.md

index d28a3a0bf328aacc22d6226a1b5a3ca8f572e7ea..afc2794ea1e30a2c74b8d20a9ad8f361434fd68a 100644 (file)
 }"
 [(set_attr "type" "store4")])
 
+;; Similarly for the the floating point registers
+(define_insn "*push_fp_multi"
+  [(match_parallel 2 "multi_register_push"
+    [(set (match_operand:BLK 0 "memory_operand" "=m")
+         (unspec:BLK [(match_operand:XF 1 "f_register_operand" "f")] 2))])]
+  ""
+  "*
+{
+  char pattern[100];
+  int i;
+
+  sprintf (pattern, \"sfmfd\\t%%1, %d, [%%m0]!\", XVECLEN (operands[2], 0));
+  output_asm_insn (pattern, operands);
+  return \"\";
+}"
+[(set_attr "type" "f_store")])
+
 ;; Special patterns for dealing with the constant pool
 
 (define_insn "consttable_4"