[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
This commit is contained in:
parent
8d1fe980a2
commit
0d780006d4
|
@ -1,3 +1,9 @@
|
||||||
|
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 @@
|
||||||
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]);
|
||||||
|
|
Loading…
Reference in New Issue