diff options
author | Richard Earnshaw <erich@gnu.org> | 1997-07-16 14:54:40 +0000 |
---|---|---|
committer | Richard Earnshaw <erich@gnu.org> | 1997-07-16 14:54:40 +0000 |
commit | e9335bb692c19959932d1fda9f80e913947a2384 (patch) | |
tree | ef8e14b8ead32f5948d242bd22e20376ed35aa41 /gcc | |
parent | 4677cb4b20dfaa00efc6b2f6e3b55f72f9801dd5 (diff) | |
download | gcc-e9335bb692c19959932d1fda9f80e913947a2384.zip gcc-e9335bb692c19959932d1fda9f80e913947a2384.tar.gz gcc-e9335bb692c19959932d1fda9f80e913947a2384.tar.bz2 |
(*push_fp_multi): New pattern.
From-SVN: r14459
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/arm/arm.md | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index d28a3a0..afc2794 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -5977,6 +5977,23 @@ }" [(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" |