diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2014-05-27 10:23:20 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2014-05-27 10:23:20 +0000 |
commit | f571b63f52480bcdd80abbd314810130960ed3b8 (patch) | |
tree | f8d690a11f828b871f683d20c9f1d9e062f4a1fc /gcc/ira.c | |
parent | 4cc8d9d2df6f618f133f6d5ec1019333a0d942e5 (diff) | |
download | gcc-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.c | 17 |
1 files changed, 7 insertions, 10 deletions
@@ -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. */ |