aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.7/gcc
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2012-12-06 11:43:15 +0800
committerAndrew Hsieh <andrewhsieh@google.com>2012-12-06 11:43:15 +0800
commit081453273c622c16a2d87b61f87a861261a08f07 (patch)
tree2967f119b0d86a7045cafcb3b64a11299a96ef84 /gcc-4.7/gcc
parentcc078a51b7945149f03938590ea26fbb7264c950 (diff)
downloadtoolchain_gcc-081453273c622c16a2d87b61f87a861261a08f07.tar.gz
toolchain_gcc-081453273c622c16a2d87b61f87a861261a08f07.tar.bz2
toolchain_gcc-081453273c622c16a2d87b61f87a861261a08f07.zip
Backport r193554 to GCC4.7/x86 resotre earlier cmov behavior
See http://gcc.gnu.org/viewcvs?view=revision&revision=193554 Change-Id: I069da55efd2d75fc8b5ad518090660131d6fec05
Diffstat (limited to 'gcc-4.7/gcc')
-rw-r--r--gcc-4.7/gcc/config/i386/i386.c5
-rw-r--r--gcc-4.7/gcc/config/i386/i386.md4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc-4.7/gcc/config/i386/i386.c b/gcc-4.7/gcc/config/i386/i386.c
index c21cb81c1..34e6f1f14 100644
--- a/gcc-4.7/gcc/config/i386/i386.c
+++ b/gcc-4.7/gcc/config/i386/i386.c
@@ -19578,6 +19578,11 @@ ix86_expand_fp_movcc (rtx operands[])
return true;
}
+ if (GET_MODE (op0) == TImode
+ || (GET_MODE (op0) == DImode
+ && !TARGET_64BIT))
+ return false;
+
/* The floating point conditional move instructions don't directly
support conditions resulting from a signed integer comparison. */
diff --git a/gcc-4.7/gcc/config/i386/i386.md b/gcc-4.7/gcc/config/i386/i386.md
index e006cc8fb..c0cc8ea8c 100644
--- a/gcc-4.7/gcc/config/i386/i386.md
+++ b/gcc-4.7/gcc/config/i386/i386.md
@@ -16318,7 +16318,7 @@
(define_expand "mov<mode>cc"
[(set (match_operand:SWIM 0 "register_operand" "")
- (if_then_else:SWIM (match_operand 1 "ordered_comparison_operator" "")
+ (if_then_else:SWIM (match_operand 1 "comparison_operator" "")
(match_operand:SWIM 2 "<general_operand>" "")
(match_operand:SWIM 3 "<general_operand>" "")))]
""
@@ -16435,7 +16435,7 @@
(define_expand "mov<mode>cc"
[(set (match_operand:X87MODEF 0 "register_operand" "")
(if_then_else:X87MODEF
- (match_operand 1 "ix86_fp_comparison_operator" "")
+ (match_operand 1 "comparison_operator" "")
(match_operand:X87MODEF 2 "register_operand" "")
(match_operand:X87MODEF 3 "register_operand" "")))]
"(TARGET_80387 && TARGET_CMOVE)