aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-04-25 14:21:16 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-04-25 14:21:16 -0400
commit157735e867d943d8625064fb7a9c6753ae400cde (patch)
tree68adafdd0981d1fe3c42898035482e6838d70d13 /gcc/config/i386
parent099800e348474c5a682b1f61aa571c58051b2194 (diff)
downloadgcc-157735e867d943d8625064fb7a9c6753ae400cde.zip
gcc-157735e867d943d8625064fb7a9c6753ae400cde.tar.gz
gcc-157735e867d943d8625064fb7a9c6753ae400cde.tar.bz2
(TARGET_NO_FANCY_MATH_387): Implement new option.
From-SVN: r7152
Diffstat (limited to 'gcc/config/i386')
-rw-r--r--gcc/config/i386/i386.md36
1 files changed, 24 insertions, 12 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 346a63b..9557032 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -2938,78 +2938,90 @@
(define_insn "sqrtsf2"
[(set (match_operand:SF 0 "register_operand" "=f")
(sqrt:SF (match_operand:SF 1 "general_operand" "0")))]
- "TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math)"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ && (TARGET_IEEE_FP || flag_fast_math) "
"fsqrt")
(define_insn "sqrtdf2"
[(set (match_operand:DF 0 "register_operand" "=f")
(sqrt:DF (match_operand:DF 1 "general_operand" "0")))]
- "TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math)"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ && (TARGET_IEEE_FP || flag_fast_math) "
"fsqrt")
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=f")
(sqrt:DF (float_extend:DF
(match_operand:SF 1 "general_operand" "0"))))]
- "TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math)"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ && (TARGET_IEEE_FP || flag_fast_math) "
"fsqrt")
(define_insn "sqrtxf2"
[(set (match_operand:XF 0 "register_operand" "=f")
(sqrt:XF (match_operand:XF 1 "general_operand" "0")))]
- "TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math)"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ && (TARGET_IEEE_FP || flag_fast_math) "
"fsqrt")
(define_insn ""
[(set (match_operand:XF 0 "register_operand" "=f")
(sqrt:XF (float_extend:XF
(match_operand:DF 1 "general_operand" "0"))))]
- "TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math)"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ && (TARGET_IEEE_FP || flag_fast_math) "
"fsqrt")
(define_insn ""
[(set (match_operand:XF 0 "register_operand" "=f")
(sqrt:XF (float_extend:XF
(match_operand:SF 1 "general_operand" "0"))))]
- "TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math)"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ && (TARGET_IEEE_FP || flag_fast_math) "
"fsqrt")
(define_insn "sindf2"
[(set (match_operand:DF 0 "register_operand" "=f")
(unspec:DF [(match_operand:DF 1 "register_operand" "0")] 1))]
- "TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math)"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ && (TARGET_IEEE_FP || flag_fast_math) "
"fsin")
(define_insn "sinsf2"
[(set (match_operand:SF 0 "register_operand" "=f")
(unspec:SF [(match_operand:SF 1 "register_operand" "0")] 1))]
- "TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math)"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ && (TARGET_IEEE_FP || flag_fast_math) "
"fsin")
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=f")
(unspec:DF [(float_extend:DF
(match_operand:SF 1 "register_operand" "0"))] 1))]
- "TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math)"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ && (TARGET_IEEE_FP || flag_fast_math) "
"fsin")
(define_insn "cosdf2"
[(set (match_operand:DF 0 "register_operand" "=f")
(unspec:DF [(match_operand:DF 1 "register_operand" "0")] 2))]
- "TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math)"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ && (TARGET_IEEE_FP || flag_fast_math) "
"fcos")
(define_insn "cossf2"
[(set (match_operand:SF 0 "register_operand" "=f")
(unspec:SF [(match_operand:SF 1 "register_operand" "0")] 2))]
- "TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math)"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ && (TARGET_IEEE_FP || flag_fast_math) "
"fcos")
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=f")
(unspec:DF [(float_extend:DF
(match_operand:SF 1 "register_operand" "0"))] 2))]
- "TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math)"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ && (TARGET_IEEE_FP || flag_fast_math) "
"fcos")
;;- one complement instructions