diff options
author | eager <eager@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-02-27 17:21:40 +0000 |
---|---|---|
committer | eager <eager@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-02-27 17:21:40 +0000 |
commit | e249ec67f2b6d42ff354f7545296d1bc23bdc379 (patch) | |
tree | fabd4d89ef4b2a9e7a14dd6c7eb4d3bdaffcb7e3 /gcc/config/microblaze/microblaze.c | |
parent | dcd56d11f3153d8a82722fca448dd20ff6169bd9 (diff) | |
download | gcc-e249ec67f2b6d42ff354f7545296d1bc23bdc379.tar.gz |
Avoid pcmpe insns when not valuable.
* gcc/config/microblaze/microblaze.c (microblaze_emit_compare):
Use xor for EQ/NE comparisions
* gcc/config/microblaze/microblaze.md (cstoresf4): Add constraints
(cbranchsf4): Adjust operator to comparison_operator
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196315 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/microblaze/microblaze.c')
-rw-r--r-- | gcc/config/microblaze/microblaze.c | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c index fc0296e2c15..f45d30cf450 100644 --- a/gcc/config/microblaze/microblaze.c +++ b/gcc/config/microblaze/microblaze.c @@ -2842,21 +2842,8 @@ microblaze_emit_compare (enum machine_mode mode, rtx cmp, enum rtx_code *cmp_cod if (code == EQ || code == NE) { - if (TARGET_PATTERN_COMPARE && GET_CODE(cmp_op1) == REG) - { - if (code == EQ) - { - emit_insn (gen_seq_internal_pat (comp_reg, cmp_op0, cmp_op1)); - *cmp_code = NE; - } - else - { - emit_insn (gen_sne_internal_pat (comp_reg, cmp_op0, cmp_op1)); - } - } - else - /* Use xor for equal/not-equal comparison. */ - emit_insn (gen_xorsi3 (comp_reg, cmp_op0, cmp_op1)); + /* Use xor for equal/not-equal comparison. */ + emit_insn (gen_xorsi3 (comp_reg, cmp_op0, cmp_op1)); } else if (code == GT || code == GTU || code == LE || code == LEU) { |