(mulsi3_big): Use low half of result.
authorRichard Stallman <rms@gnu.org>
Sat, 5 Sep 1992 03:22:36 +0000 (03:22 +0000)
committerRichard Stallman <rms@gnu.org>
Sat, 5 Sep 1992 03:22:36 +0000 (03:22 +0000)
Use offset 1 in subregs in actual fmlow insn.
(fmlow pattern): Split this into alternatives for big and little end.

From-SVN: r2055

gcc/config/i860/i860.md

index 46de393..86d166a 100644 (file)
   [(set (subreg:SI (match_dup 4) 1) (match_operand:SI 1 "general_operand" ""))
    (set (subreg:SI (match_dup 5) 1) (match_operand:SI 2 "general_operand" ""))
    (clobber (match_dup 3))
-   (set (subreg:SI (match_dup 3) 0)
-       (mult:SI (subreg:SI (match_dup 4) 0) (subreg:SI (match_dup 5) 0)))
-   (set (match_operand:SI 0 "register_operand" "") (subreg:SI (match_dup 3) 0))]
+   (set (subreg:SI (match_dup 3) 1)
+       (mult:SI (subreg:SI (match_dup 4) 1) (subreg:SI (match_dup 5) 1)))
+   (set (match_operand:SI 0 "register_operand" "") (subreg:SI (match_dup 3) 1))]
   "WORDS_BIG_ENDIAN"
   "
 {
   [(set (subreg:SI (match_operand:DI 0 "register_operand" "=f") 0)
        (mult:SI (subreg:SI (match_operand:DI 1 "register_operand" "f") 0)
                 (subreg:SI (match_operand:DI 2 "register_operand" "f") 0)))]
-  ""
+  "! WORDS_BIG_ENDIAN"
+  "fmlow.dd %2,%1,%0")
+
+(define_insn ""
+  [(set (subreg:SI (match_operand:DI 0 "register_operand" "=f") 1)
+       (mult:SI (subreg:SI (match_operand:DI 1 "register_operand" "f") 1)
+                (subreg:SI (match_operand:DI 2 "register_operand" "f") 1)))]
+  "WORDS_BIG_ENDIAN"
   "fmlow.dd %2,%1,%0")
 \f
 ;;- and instructions (with compliment also)