summaryrefslogtreecommitdiff
path: root/gcc/config/mips
diff options
context:
space:
mode:
authoredlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4>2015-07-04 19:02:18 +0000
committeredlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4>2015-07-04 19:02:18 +0000
commit874cca8bc8e9e04b57314781c9057924376dc91f (patch)
tree99128022d16397595675ad1aeb6111c065443e7b /gcc/config/mips
parenta5baeed086bcca781ab064dae948db9442fe57c3 (diff)
downloadgcc-874cca8bc8e9e04b57314781c9057924376dc91f.tar.gz
2015-07-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR target/66747 * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225416 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/mips')
-rw-r--r--gcc/config/mips/mips.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index da0943b5df3..95a0ae3f44c 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -9790,17 +9790,18 @@ mips16_cfun_returns_in_fpr_p (void)
static bool
mips_find_gp_ref (bool *cache, bool (*pred) (rtx_insn *))
{
- rtx_insn *insn;
+ rtx_insn *insn, *subinsn;
if (!*cache)
{
push_topmost_sequence ();
for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
- if (USEFUL_INSN_P (insn) && pred (insn))
- {
- *cache = true;
- break;
- }
+ FOR_EACH_SUBINSN (subinsn, insn)
+ if (USEFUL_INSN_P (subinsn) && pred (subinsn))
+ {
+ *cache = true;
+ break;
+ }
pop_topmost_sequence ();
}
return *cache;