diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2012-12-06 11:43:15 +0800 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2012-12-06 11:43:15 +0800 |
commit | 081453273c622c16a2d87b61f87a861261a08f07 (patch) | |
tree | 2967f119b0d86a7045cafcb3b64a11299a96ef84 /gcc-4.7/gcc | |
parent | cc078a51b7945149f03938590ea26fbb7264c950 (diff) | |
download | toolchain_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.c | 5 | ||||
-rw-r--r-- | gcc-4.7/gcc/config/i386/i386.md | 4 |
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) |