diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2014-10-26 10:42:00 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2014-10-26 10:42:00 +0000 |
commit | d44f6d93470c7a689fe0836b18f0aa01cca99cb8 (patch) | |
tree | ffa09d4eb94fd37728b85132cab38266962321d1 /gcc | |
parent | 01333d81e4b493b1f9069e6d496b6071f69d8558 (diff) | |
download | gcc-d44f6d93470c7a689fe0836b18f0aa01cca99cb8.zip gcc-d44f6d93470c7a689fe0836b18f0aa01cca99cb8.tar.gz gcc-d44f6d93470c7a689fe0836b18f0aa01cca99cb8.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 20 |
2 files changed, 12 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c10b1ee..89f29ed 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 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. diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index e0d701b..fc16a40 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -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; } |