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
This commit is contained in:
parent
04a9ae287f
commit
586cdac8e5
@ -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.
|
* config.gcc (extra_gcc_objs): Define for MSP430.
|
||||||
* common/config/msp430/msp430-common.c (msp430_handle_option):
|
* common/config/msp430/msp430-common.c (msp430_handle_option):
|
||||||
|
@ -10568,9 +10568,9 @@
|
|||||||
|
|
||||||
(define_expand "cstore<mode>4_unsigned"
|
(define_expand "cstore<mode>4_unsigned"
|
||||||
[(use (match_operator 1 "unsigned_comparison_operator"
|
[(use (match_operator 1 "unsigned_comparison_operator"
|
||||||
[(match_operand:P 2 "gpc_reg_operand" "")
|
[(match_operand:P 2 "gpc_reg_operand")
|
||||||
(match_operand:P 3 "reg_or_short_operand" "")]))
|
(match_operand:P 3 "reg_or_short_operand")]))
|
||||||
(clobber (match_operand:P 0 "register_operand"))]
|
(clobber (match_operand:P 0 "gpc_reg_operand"))]
|
||||||
""
|
""
|
||||||
{
|
{
|
||||||
enum rtx_code cond_code = GET_CODE (operands[1]);
|
enum rtx_code cond_code = GET_CODE (operands[1]);
|
||||||
@ -10582,8 +10582,7 @@
|
|||||||
if (cond_code == GEU || cond_code == LTU)
|
if (cond_code == GEU || cond_code == LTU)
|
||||||
{
|
{
|
||||||
cond_code = swap_condition (cond_code);
|
cond_code = swap_condition (cond_code);
|
||||||
op1 = operands[3];
|
std::swap (op1, op2);
|
||||||
op2 = operands[2];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!gpc_reg_operand (op1, <MODE>mode))
|
if (!gpc_reg_operand (op1, <MODE>mode))
|
||||||
@ -10609,7 +10608,7 @@
|
|||||||
[(use (match_operator 1 "unsigned_comparison_operator"
|
[(use (match_operator 1 "unsigned_comparison_operator"
|
||||||
[(match_operand:SI 2 "gpc_reg_operand")
|
[(match_operand:SI 2 "gpc_reg_operand")
|
||||||
(match_operand:SI 3 "reg_or_short_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;
|
int uns_flag = unsigned_comparison_operator (operands[1], VOIDmode) ? 1 : 0;
|
||||||
@ -10654,7 +10653,7 @@
|
|||||||
[(use (match_operator 1 "signed_comparison_operator"
|
[(use (match_operator 1 "signed_comparison_operator"
|
||||||
[(match_operand:GPR 2 "gpc_reg_operand")
|
[(match_operand:GPR 2 "gpc_reg_operand")
|
||||||
(match_operand:GPR 3 "immediate_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;
|
bool invert = false;
|
||||||
@ -10699,7 +10698,7 @@
|
|||||||
[(use (match_operator 1 "unsigned_comparison_operator"
|
[(use (match_operator 1 "unsigned_comparison_operator"
|
||||||
[(match_operand:GPR 2 "gpc_reg_operand")
|
[(match_operand:GPR 2 "gpc_reg_operand")
|
||||||
(match_operand:GPR 3 "immediate_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;
|
bool invert = false;
|
||||||
@ -10746,7 +10745,7 @@
|
|||||||
[(use (match_operator 1 "rs6000_cbranch_operator"
|
[(use (match_operator 1 "rs6000_cbranch_operator"
|
||||||
[(match_operand:GPR 2 "gpc_reg_operand")
|
[(match_operand:GPR 2 "gpc_reg_operand")
|
||||||
(match_operand:GPR 3 "reg_or_short_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. */
|
/* Use ISEL if the user asked for it. */
|
||||||
@ -10807,9 +10806,9 @@
|
|||||||
|
|
||||||
(define_expand "cstore<mode>4"
|
(define_expand "cstore<mode>4"
|
||||||
[(use (match_operator 1 "rs6000_cbranch_operator"
|
[(use (match_operator 1 "rs6000_cbranch_operator"
|
||||||
[(match_operand:FP 2 "gpc_reg_operand" "")
|
[(match_operand:FP 2 "gpc_reg_operand")
|
||||||
(match_operand:FP 3 "gpc_reg_operand" "")]))
|
(match_operand:FP 3 "gpc_reg_operand")]))
|
||||||
(clobber (match_operand:SI 0 "register_operand"))]
|
(clobber (match_operand:SI 0 "gpc_reg_operand"))]
|
||||||
""
|
""
|
||||||
{
|
{
|
||||||
rs6000_emit_sCOND (<MODE>mode, operands);
|
rs6000_emit_sCOND (<MODE>mode, operands);
|
||||||
|
Loading…
Reference in New Issue
Block a user