re PR target/68400 (ICE in change_address_1, at emit-rtl.c:2125)

2016-01-28  Steve Ellcey  <sellcey@imgtec.com>

	PR target/68400
	* config/mips/mips.c (and_operands_ok): Add MIPS16 check.

From-SVN: r232952
This commit is contained in:
Steve Ellcey 2016-01-28 22:25:55 +00:00 committed by Steve Ellcey
parent 494de84f5e
commit 0b16c7b99c
2 changed files with 17 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2016-01-28 Steve Ellcey <sellcey@imgtec.com>
PR target/68400
* config/mips/mips.c (and_operands_ok): Add MIPS16 check.
2016-01-28 Jakub Jelinek <jakub@redhat.com>
PR middle-end/69542

View File

@ -8006,9 +8006,18 @@ mask_low_and_shift_p (machine_mode mode, rtx mask, rtx shift, int maxlen)
bool
and_operands_ok (machine_mode mode, rtx op1, rtx op2)
{
return (memory_operand (op1, mode)
? and_load_operand (op2, mode)
: and_reg_operand (op2, mode));
if (memory_operand (op1, mode))
{
if (TARGET_MIPS16) {
struct mips_address_info addr;
if (!mips_classify_address (&addr, op1, mode, false))
return false;
}
return and_load_operand (op2, mode);
}
else
return and_reg_operand (op2, mode);
}
/* The canonical form of a mask-low-and-shift-left operation is