Commit 7d1f0f8a by Uros Bizjak Committed by Uros Bizjak

i386.md (*addhi_1_lea): Assert that operand 0 and operand 1 are equal.

	* config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
	that operand 0 and operand 1 are equal.
	(*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
	(*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
	and operand 1 are equal.
	<default>: Ditto. Remove ??? comment.
	(*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
	and operand 1 are equal.
	<default>: Ditto. Remove ??? comment.
	(*adddi_4) <default>:  Remove assert that operand 0 and operand 1
	are equal.
	(*add<mode>_4) <default>: Ditto.
	(*add<mode>_5) <TYPE_INCDEC, default>: Ditto.

From-SVN: r160287
parent 6b3c42ae
2010-06-04 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
that operand 0 and operand 1 are equal.
(*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
(*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
and operand 1 are equal.
<default>: Ditto. Remove ??? comment.
(*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
and operand 1 are equal.
<default>: Ditto. Remove ??? comment.
(*adddi_4) <default>: Remove assert that operand 0 and operand 1
are equal.
(*add<mode>_4) <default>: Ditto.
(*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
2010-06-04 Nathan Froyd <froydnj@codesourcery.com> 2010-06-04 Nathan Froyd <froydnj@codesourcery.com>
* config/i386/i386-protos.h (ix86_print_operand): Declare. * config/i386/i386-protos.h (ix86_print_operand): Declare.
...@@ -19,8 +35,8 @@ ...@@ -19,8 +35,8 @@
2010-06-04 Uros Bizjak <ubizjak@gmail.com> 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*addqi_2): Do not assert operands[2] == 255 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
for TYPE_INCDEC operands. operands[2] == 255.
(*addqi_3): Ditto. (*addqi_3): Ditto.
(*addqi_4): Ditto. (*addqi_4): Ditto.
(*addqi_5): Ditto. (*addqi_5): Ditto.
......
...@@ -6232,7 +6232,9 @@ ...@@ -6232,7 +6232,9 @@
{ {
case TYPE_LEA: case TYPE_LEA:
return "#"; return "#";
case TYPE_INCDEC: case TYPE_INCDEC:
gcc_assert (rtx_equal_p (operands[0], operands[1]));
if (operands[2] == const1_rtx) if (operands[2] == const1_rtx)
return "inc{w}\t%0"; return "inc{w}\t%0";
else else
...@@ -6242,6 +6244,7 @@ ...@@ -6242,6 +6244,7 @@
} }
default: default:
gcc_assert (rtx_equal_p (operands[0], operands[1]));
if (x86_maybe_negate_const_int (&operands[2], HImode)) if (x86_maybe_negate_const_int (&operands[2], HImode))
return "sub{w}\t{%2, %0|%0, %2}"; return "sub{w}\t{%2, %0|%0, %2}";
...@@ -6320,7 +6323,9 @@ ...@@ -6320,7 +6323,9 @@
{ {
case TYPE_LEA: case TYPE_LEA:
return "#"; return "#";
case TYPE_INCDEC: case TYPE_INCDEC:
gcc_assert (rtx_equal_p (operands[0], operands[1]));
if (operands[2] == const1_rtx) if (operands[2] == const1_rtx)
return widen ? "inc{l}\t%k0" : "inc{b}\t%0"; return widen ? "inc{l}\t%k0" : "inc{b}\t%0";
else else
...@@ -6330,6 +6335,7 @@ ...@@ -6330,6 +6335,7 @@
} }
default: default:
gcc_assert (rtx_equal_p (operands[0], operands[1]));
if (x86_maybe_negate_const_int (&operands[2], QImode)) if (x86_maybe_negate_const_int (&operands[2], QImode))
{ {
if (widen) if (widen)
...@@ -6407,7 +6413,6 @@ ...@@ -6407,7 +6413,6 @@
switch (get_attr_type (insn)) switch (get_attr_type (insn))
{ {
case TYPE_INCDEC: case TYPE_INCDEC:
gcc_assert (rtx_equal_p (operands[0], operands[1]));
if (operands[2] == const1_rtx) if (operands[2] == const1_rtx)
return "inc{<imodesuffix>}\t%0"; return "inc{<imodesuffix>}\t%0";
else else
...@@ -6417,9 +6422,6 @@ ...@@ -6417,9 +6422,6 @@
} }
default: default:
gcc_assert (rtx_equal_p (operands[0], operands[1]));
/* ???? In DImode, we ought to handle there the 32bit case too
- do we need new constraint? */
if (x86_maybe_negate_const_int (&operands[2], <MODE>mode)) if (x86_maybe_negate_const_int (&operands[2], <MODE>mode))
return "sub{<imodesuffix>}\t{%2, %0|%0, %2}"; return "sub{<imodesuffix>}\t{%2, %0|%0, %2}";
...@@ -6490,7 +6492,6 @@ ...@@ -6490,7 +6492,6 @@
switch (get_attr_type (insn)) switch (get_attr_type (insn))
{ {
case TYPE_INCDEC: case TYPE_INCDEC:
gcc_assert (rtx_equal_p (operands[0], operands[1]));
if (operands[2] == const1_rtx) if (operands[2] == const1_rtx)
return "inc{<imodesuffix>}\t%0"; return "inc{<imodesuffix>}\t%0";
else else
...@@ -6500,9 +6501,6 @@ ...@@ -6500,9 +6501,6 @@
} }
default: default:
gcc_assert (rtx_equal_p (operands[0], operands[1]));
/* ???? In DImode, we ought to handle there the 32bit case too
- do we need new constraint? */
if (x86_maybe_negate_const_int (&operands[2], <MODE>mode)) if (x86_maybe_negate_const_int (&operands[2], <MODE>mode))
return "sub{<imodesuffix>}\t{%2, %0|%0, %2}"; return "sub{<imodesuffix>}\t{%2, %0|%0, %2}";
...@@ -6588,7 +6586,6 @@ ...@@ -6588,7 +6586,6 @@
} }
default: default:
gcc_assert (rtx_equal_p (operands[0], operands[1]));
if (x86_maybe_negate_const_int (&operands[2], DImode)) if (x86_maybe_negate_const_int (&operands[2], DImode))
return "add{q}\t{%2, %0|%0, %2}"; return "add{q}\t{%2, %0|%0, %2}";
...@@ -6633,7 +6630,6 @@ ...@@ -6633,7 +6630,6 @@
} }
default: default:
gcc_assert (rtx_equal_p (operands[0], operands[1]));
if (x86_maybe_negate_const_int (&operands[2], <MODE>mode)) if (x86_maybe_negate_const_int (&operands[2], <MODE>mode))
return "add{<imodesuffix>}\t{%2, %0|%0, %2}"; return "add{<imodesuffix>}\t{%2, %0|%0, %2}";
...@@ -6665,7 +6661,6 @@ ...@@ -6665,7 +6661,6 @@
switch (get_attr_type (insn)) switch (get_attr_type (insn))
{ {
case TYPE_INCDEC: case TYPE_INCDEC:
gcc_assert (rtx_equal_p (operands[0], operands[1]));
if (operands[2] == const1_rtx) if (operands[2] == const1_rtx)
return "inc{<imodesuffix>}\t%0"; return "inc{<imodesuffix>}\t%0";
else else
...@@ -6675,7 +6670,6 @@ ...@@ -6675,7 +6670,6 @@
} }
default: default:
gcc_assert (rtx_equal_p (operands[0], operands[1]));
if (x86_maybe_negate_const_int (&operands[2], <MODE>mode)) if (x86_maybe_negate_const_int (&operands[2], <MODE>mode))
return "sub{<imodesuffix>}\t{%2, %0|%0, %2}"; return "sub{<imodesuffix>}\t{%2, %0|%0, %2}";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment