Commit 0d780006 by Kyrylo Tkachov Committed by Kyrylo Tkachov

[ARM] Fix PR 65955: Do not take REGNO on non-REG operand in movcond_addsi

	PR target/65955
	* config/arm/arm.md (movcond_addsi): Check that operands[2] is a
	REG before taking its REGNO.

From-SVN: r223049
parent 8d1fe980
2015-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/65955
* config/arm/arm.md (movcond_addsi): Check that operands[2] is a
REG before taking its REGNO.
2015-05-12 Thomas Preud'homme <thomas.preudhomme@arm.com> 2015-05-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
* combine.c i(set_nonzero_bits_and_sign_copies): Split code updating * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
......
...@@ -9323,7 +9323,7 @@ ...@@ -9323,7 +9323,7 @@
enum rtx_code rc = GET_CODE (operands[5]); enum rtx_code rc = GET_CODE (operands[5]);
operands[6] = gen_rtx_REG (mode, CC_REGNUM); operands[6] = gen_rtx_REG (mode, CC_REGNUM);
gcc_assert (!(mode == CCFPmode || mode == CCFPEmode)); gcc_assert (!(mode == CCFPmode || mode == CCFPEmode));
if (REGNO (operands[2]) != REGNO (operands[0])) if (!REG_P (operands[2]) || REGNO (operands[2]) != REGNO (operands[0]))
rc = reverse_condition (rc); rc = reverse_condition (rc);
else else
std::swap (operands[1], operands[2]); std::swap (operands[1], operands[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