Commit 04d8b819 by Richard Earnshaw Committed by Richard Earnshaw

re PR target/14812 (ARM optimizer changes rsb/cmp to cmn, but condition codes different)

	PR target/14812
	* arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
	a negated value.

From-SVN: r97533
parent 58dc8547
2005-04-04 Richard Earnshaw <richard.earnshaw@arm.com>
PR target/14812
* arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
a negated value.
2005-04-04 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
......
......@@ -6100,6 +6100,13 @@ arm_select_cc_mode (enum rtx_code op, rtx x, rtx y)
|| GET_CODE (x) == ROTATERT))
return CC_SWPmode;
/* This operation is performed swapped, but since we only rely on the Z
flag we don't need an additional mode. */
if (GET_MODE (y) == SImode && REG_P (y)
&& GET_CODE (x) == NEG
&& (op == EQ || op == NE))
return CC_Zmode;
/* This is a special case that is used by combine to allow a
comparison of a shifted byte load to be split into a zero-extend
followed by a comparison of the shifted integer (only valid for
......
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