Commit d44f6d93 by Richard Sandiford Committed by Richard Sandiford

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
parent 01333d81
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...
(mips_record_lo_sums): ...this new function.
(mips_reorg_process_insns): Update accordingly.
......@@ -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;
}
......
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