diff options
Diffstat (limited to 'gcc/config/sparc/sparc.c')
-rw-r--r-- | gcc/config/sparc/sparc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 866afb1..dca08af 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -1016,7 +1016,7 @@ sparc_do_work_around_errata (void) /* The problematic combination is with the sibling FP register. */ const unsigned int x = REGNO (SET_DEST (set)); const unsigned int y = x ^ 1; - rtx after; + rtx_insn *after; int i; next = next_active_insn (insn); @@ -1050,15 +1050,16 @@ sparc_do_work_around_errata (void) if (++i == n_insns) break; branch_p = true; - after = NULL_RTX; + after = NULL; } /* This is a branch with a filled delay slot. */ - else if (GET_CODE (PATTERN (after)) == SEQUENCE) + else if (rtx_sequence *seq = + dyn_cast <rtx_sequence *> (PATTERN (after))) { if (++i == n_insns) break; branch_p = true; - after = XVECEXP (PATTERN (after), 0, 1); + after = seq->insn (1); } /* This is a regular instruction. */ else |