aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2011-09-22 19:35:00 +0200
committerUros Bizjak <uros@gcc.gnu.org>2011-09-22 19:35:00 +0200
commit63d045e14e1a5f89e97af66dba6166f434c18fcc (patch)
treebd0ecc6be3346ab77392394e5c3bd3da2fcb6e1e /gcc/config
parent163f8b71672b09e7f3a1c8edc185aa4d1952035b (diff)
downloadgcc-63d045e14e1a5f89e97af66dba6166f434c18fcc.zip
gcc-63d045e14e1a5f89e97af66dba6166f434c18fcc.tar.gz
gcc-63d045e14e1a5f89e97af66dba6166f434c18fcc.tar.bz2
re PR target/50482 (internal compiler error at recog.c:2137)
PR target/50482 * config/i386/i386.c (ix86_expand_sse_movcc): When generating blendv, force op_true to register if it doesn't satisfy nonimmediate_operand predicate. testsuite/ChangeLog: PR target/50482 * gcc.target/i386/pr50482.c: New test. From-SVN: r179094
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/i386/i386.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index f952d2e..954b879 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -18911,6 +18911,9 @@ ix86_expand_sse_movcc (rtx dest, rtx cmp, rtx op_true, rtx op_false)
{
rtx (*gen) (rtx, rtx, rtx, rtx) = NULL;
+ if (!nonimmediate_operand (op_true, mode))
+ op_true = force_reg (mode, op_true);
+
op_false = force_reg (mode, op_false);
switch (mode)