aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira.c
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2014-05-27 10:23:20 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2014-05-27 10:23:20 +0000
commitf571b63f52480bcdd80abbd314810130960ed3b8 (patch)
treef8d690a11f828b871f683d20c9f1d9e062f4a1fc /gcc/ira.c
parent4cc8d9d2df6f618f133f6d5ec1019333a0d942e5 (diff)
downloadgcc-f571b63f52480bcdd80abbd314810130960ed3b8.zip
gcc-f571b63f52480bcdd80abbd314810130960ed3b8.tar.gz
gcc-f571b63f52480bcdd80abbd314810130960ed3b8.tar.bz2
ira.c (commutative_operand): Adjust for change to recog_data.
gcc/ * ira.c (commutative_operand): Adjust for change to recog_data. [Missing from previous commit.] From-SVN: r210965
Diffstat (limited to 'gcc/ira.c')
-rw-r--r--gcc/ira.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/gcc/ira.c b/gcc/ira.c
index a26f9e4..076c5323 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -1774,23 +1774,20 @@ setup_prohibited_mode_move_regs (void)
static bool
commutative_constraint_p (const char *str)
{
- int curr_alt, c;
- bool ignore_p;
+ int c;
- for (ignore_p = false, curr_alt = 0;;)
+ alternative_mask enabled = recog_data.enabled_alternatives;
+ for (;;)
{
c = *str;
if (c == '\0')
break;
str += CONSTRAINT_LEN (c, str);
- if (c == '#' || !recog_data.alternative_enabled_p[curr_alt])
- ignore_p = true;
+ if (c == '#')
+ enabled &= ~ALTERNATIVE_BIT (0);
else if (c == ',')
- {
- curr_alt++;
- ignore_p = false;
- }
- else if (! ignore_p)
+ enabled >>= 1;
+ else if (enabled & 1)
{
/* Usually `%' is the first constraint character but the
documentation does not require this. */