diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2015-03-27 14:47:24 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2015-03-27 14:47:24 +0000 |
commit | d81c5030d1ca9920bc41de91819cef17c83a8805 (patch) | |
tree | ab5f9fa3b84fcb355439b45a9188b52276e8a009 /gcc/ira-costs.c | |
parent | 2166d2a1a010c5172a14e30bb17c3bd4ca9a9ff3 (diff) | |
download | gcc-d81c5030d1ca9920bc41de91819cef17c83a8805.tar.gz |
re PR target/65407 (Extra mask register move in gcc.target/i386/avx512f-kandnw-1.c)
2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
PR target/65407
* ira-costs.c (record_reg_classes): Process all constraint string
containing 0-9.
2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
PR target/65407
* gcc.target/i386/avx512f-kandnw-1.c: Add scanning kmovw.
From-SVN: r221734
Diffstat (limited to 'gcc/ira-costs.c')
-rw-r--r-- | gcc/ira-costs.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c index c19f2586aff..354ba6ba063 100644 --- a/gcc/ira-costs.c +++ b/gcc/ira-costs.c @@ -589,7 +589,7 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops, while (*p == '%' || *p == '=' || *p == '+' || *p == '&') p++; - if (p[0] >= '0' && p[0] <= '0' + i && (p[1] == ',' || p[1] == 0)) + if (p[0] >= '0' && p[0] <= '0' + i) { /* Copy class and whether memory is allowed from the matching alternative. Then perform any needed cost @@ -754,14 +754,7 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops, && ! find_reg_note (insn, REG_DEAD, op)) alt_cost += 2; - /* This is in place of ordinary cost computation for - this operand, so skip to the end of the - alternative (should be just one character). */ - while (*p && *p++ != ',') - ; - - constraints[i] = p; - continue; + p++; } } |