diff options
author | Segher Boessenkool <segher@gcc.gnu.org> | 2015-12-04 18:28:54 +0100 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2015-12-04 18:28:54 +0100 |
commit | 586cdac8e5af3fff142829e579558f8728e56f81 (patch) | |
tree | 1bf94659736977c4161f80f0edfe303639443ac6 | |
parent | 04a9ae287f6d76c60464c57be98550a25b358c34 (diff) | |
download | gcc-586cdac8e5af3fff142829e579558f8728e56f81.zip gcc-586cdac8e5af3fff142829e579558f8728e56f81.tar.gz gcc-586cdac8e5af3fff142829e579558f8728e56f81.tar.bz2 |
rs6000: Clean up the cstore code a bit
"register_operand" was a bit confusing. Also some other minor cleanups.
* (cstore<mode>4_unsigned): Use gpc_reg_operand instead of
register_operand. Remove empty constraints. Use std::swap.
(cstore_si_as_di, cstore<mode>4_signed_imm,
cstore<mode>4_unsigned_imm, cstore<mode>4 for GPR): Use
gpc_reg_operand instead of register_operand.
(cstore<mode>4 for FP): Use gpc_reg_operand instead of
register_operand. Remove empty constraints.
From-SVN: r231287
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 23 |
2 files changed, 22 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c918cf9..572b9a6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,14 @@ -2015-11-25 Nick Clifton <nickc@redhat.com> +2015-12-04 Segher Boessenkool <segher@kernel.crashing.org> + + * (cstore<mode>4_unsigned): Use gpc_reg_operand instead of + register_operand. Remove empty constraints. Use std::swap. + (cstore_si_as_di, cstore<mode>4_signed_imm, + cstore<mode>4_unsigned_imm, cstore<mode>4 for GPR): Use + gpc_reg_operand instead of register_operand. + (cstore<mode>4 for FP): Use gpc_reg_operand instead of + register_operand. Remove empty constraints. + +2015-12-04 Nick Clifton <nickc@redhat.com> * config.gcc (extra_gcc_objs): Define for MSP430. * common/config/msp430/msp430-common.c (msp430_handle_option): diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index f346cba..39e1b29 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -10568,9 +10568,9 @@ (define_expand "cstore<mode>4_unsigned" [(use (match_operator 1 "unsigned_comparison_operator" - [(match_operand:P 2 "gpc_reg_operand" "") - (match_operand:P 3 "reg_or_short_operand" "")])) - (clobber (match_operand:P 0 "register_operand"))] + [(match_operand:P 2 "gpc_reg_operand") + (match_operand:P 3 "reg_or_short_operand")])) + (clobber (match_operand:P 0 "gpc_reg_operand"))] "" { enum rtx_code cond_code = GET_CODE (operands[1]); @@ -10582,8 +10582,7 @@ if (cond_code == GEU || cond_code == LTU) { cond_code = swap_condition (cond_code); - op1 = operands[3]; - op2 = operands[2]; + std::swap (op1, op2); } if (!gpc_reg_operand (op1, <MODE>mode)) @@ -10609,7 +10608,7 @@ [(use (match_operator 1 "unsigned_comparison_operator" [(match_operand:SI 2 "gpc_reg_operand") (match_operand:SI 3 "reg_or_short_operand")])) - (clobber (match_operand:SI 0 "register_operand"))] + (clobber (match_operand:SI 0 "gpc_reg_operand"))] "" { int uns_flag = unsigned_comparison_operator (operands[1], VOIDmode) ? 1 : 0; @@ -10654,7 +10653,7 @@ [(use (match_operator 1 "signed_comparison_operator" [(match_operand:GPR 2 "gpc_reg_operand") (match_operand:GPR 3 "immediate_operand")])) - (clobber (match_operand:GPR 0 "register_operand"))] + (clobber (match_operand:GPR 0 "gpc_reg_operand"))] "" { bool invert = false; @@ -10699,7 +10698,7 @@ [(use (match_operator 1 "unsigned_comparison_operator" [(match_operand:GPR 2 "gpc_reg_operand") (match_operand:GPR 3 "immediate_operand")])) - (clobber (match_operand:GPR 0 "register_operand"))] + (clobber (match_operand:GPR 0 "gpc_reg_operand"))] "" { bool invert = false; @@ -10746,7 +10745,7 @@ [(use (match_operator 1 "rs6000_cbranch_operator" [(match_operand:GPR 2 "gpc_reg_operand") (match_operand:GPR 3 "reg_or_short_operand")])) - (clobber (match_operand:GPR 0 "register_operand"))] + (clobber (match_operand:GPR 0 "gpc_reg_operand"))] "" { /* Use ISEL if the user asked for it. */ @@ -10807,9 +10806,9 @@ (define_expand "cstore<mode>4" [(use (match_operator 1 "rs6000_cbranch_operator" - [(match_operand:FP 2 "gpc_reg_operand" "") - (match_operand:FP 3 "gpc_reg_operand" "")])) - (clobber (match_operand:SI 0 "register_operand"))] + [(match_operand:FP 2 "gpc_reg_operand") + (match_operand:FP 3 "gpc_reg_operand")])) + (clobber (match_operand:SI 0 "gpc_reg_operand"))] "" { rs6000_emit_sCOND (<MODE>mode, operands); |