mips.c (mips_at_reg_p): Delete.

gcc/
	* config/mips/mips.c (mips_at_reg_p): Delete.
	(mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.

From-SVN: r216715
This commit is contained in:
Richard Sandiford 2014-10-26 10:42:00 +00:00 committed by Richard Sandiford
parent 01333d81e4
commit d44f6d9347
2 changed files with 12 additions and 13 deletions

View file

@ -1,3 +1,8 @@
2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
* config/mips/mips.c (mips_at_reg_p): Delete.
(mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
* config/mips/mips.c (mips_record_lo_sum): Replace with...

View file

@ -17528,26 +17528,20 @@ mips_epilogue_uses (unsigned int regno)
return false;
}
/* A for_each_rtx callback. Stop the search if *X is an AT register. */
static int
mips_at_reg_p (rtx *x, void *data ATTRIBUTE_UNUSED)
{
return REG_P (*x) && REGNO (*x) == AT_REGNUM;
}
/* Return true if INSN needs to be wrapped in ".set noat".
INSN has NOPERANDS operands, stored in OPVEC. */
static bool
mips_need_noat_wrapper_p (rtx_insn *insn, rtx *opvec, int noperands)
{
int i;
if (recog_memoized (insn) >= 0)
for (i = 0; i < noperands; i++)
if (for_each_rtx (&opvec[i], mips_at_reg_p, NULL))
return true;
{
subrtx_iterator::array_type array;
for (int i = 0; i < noperands; i++)
FOR_EACH_SUBRTX (iter, array, opvec[i], NONCONST)
if (REG_P (*iter) && REGNO (*iter) == AT_REGNUM)
return true;
}
return false;
}