aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2005-04-05 01:38:56 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2005-04-05 01:38:56 +0000
commitacaa3bf7a13e5589d1b554c1a13432900ee2d219 (patch)
tree66c4c419405bc69ccb2b5048d909db3ec6d2d81e /gcc
parent604f5adf98a598801856cbf365c6136f6eee7464 (diff)
downloadgcc-acaa3bf7a13e5589d1b554c1a13432900ee2d219.zip
gcc-acaa3bf7a13e5589d1b554c1a13432900ee2d219.tar.gz
gcc-acaa3bf7a13e5589d1b554c1a13432900ee2d219.tar.bz2
i386.md (*truncdfsf2_i387_1): New pattern.
* config/i386/i386.md (*truncdfsf2_i387_1): New pattern. * fold-const.c (maybe_lvalue_p): Delete orphaned comment. From-SVN: r97594
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.md16
-rw-r--r--gcc/fold-const.c1
3 files changed, 22 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b3e4dcd..cd88e03 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-04-04 Roger Sayle <roger@eyesopen.com>
+
+ * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
+
+ * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
+
2005-04-04 Ian Lance Taylor <ian@airs.com>
* c-typeck.c (struct c_switch): Rename switch_stmt field to
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 5fc7fab..f9df272 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -3787,6 +3787,22 @@
[(set_attr "type" "fmov,multi")
(set_attr "mode" "SF")])
+(define_insn "*truncdfsf2_i387_1"
+ [(set (match_operand:SF 0 "memory_operand" "=m")
+ (float_truncate:SF
+ (match_operand:DF 1 "register_operand" "f")))]
+ "TARGET_80387
+ && !(TARGET_SSE2 && TARGET_SSE_MATH)
+ && !TARGET_MIX_SSE_I387"
+{
+ if (find_regno_note (insn, REG_DEAD, REGNO (operands[1])))
+ return "fstp%z0\t%y0";
+ else
+ return "fst%z0\t%y0";
+}
+ [(set_attr "type" "fmov")
+ (set_attr "mode" "SF")])
+
(define_split
[(set (match_operand:SF 0 "register_operand" "")
(float_truncate:SF
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index efbf8ed..c59a981 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -2005,7 +2005,6 @@ fold_convert (tree type, tree arg)
/* Return false if expr can be assumed not to be an value, true
otherwise. */
-/* Return an expr equal to X but certainly not valid as an lvalue. */
static bool
maybe_lvalue_p (tree x)