aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386.c
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2014-06-04 17:34:19 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2014-06-04 17:34:19 +0000
commit5f2e0797aeb67a52d1b71859e054f55d1cd24ec7 (patch)
tree2d52f4da33819b6ccfd836b957991f7753751a0c /gcc/config/i386/i386.c
parent5efe5dec7a9db46a8514e6a0e1ef9bacc38cd807 (diff)
downloadgcc-5f2e0797aeb67a52d1b71859e054f55d1cd24ec7.zip
gcc-5f2e0797aeb67a52d1b71859e054f55d1cd24ec7.tar.gz
gcc-5f2e0797aeb67a52d1b71859e054f55d1cd24ec7.tar.bz2
recog.c (preprocess_constraints): Don't skip disabled alternatives.
gcc/ * recog.c (preprocess_constraints): Don't skip disabled alternatives. * ira-lives.c (check_and_make_def_conflict): Check for disabled alternatives. (make_early_clobber_and_input_conflicts): Likewise. * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise. From-SVN: r211239
Diffstat (limited to 'gcc/config/i386/i386.c')
-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 21fa8f4..e0e55d5 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -5875,8 +5875,11 @@ ix86_legitimate_combined_insn (rtx insn)
/* Operand has no constraints, anything is OK. */
win = !n_alternatives;
+ alternative_mask enabled = recog_data.enabled_alternatives;
for (j = 0; j < n_alternatives; j++, op_alt += n_operands)
{
+ if (!TEST_BIT (enabled, j))
+ continue;
if (op_alt[i].anything_ok
|| (op_alt[i].matches != -1
&& operands_match_p