diff options
Diffstat (limited to 'gcc/config/avr/avr.c')
-rw-r--r-- | gcc/config/avr/avr.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 70d5db5..e749793 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -6769,7 +6769,7 @@ avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc, bool out_label) int cc_plus, cc_minus, cc_dummy; int len_plus, len_minus; rtx op[4]; - rtx xpattern = INSN_P (insn) ? single_set (insn) : insn; + rtx xpattern = INSN_P (insn) ? single_set (as_a <rtx_insn *> (insn)) : insn; rtx xdest = SET_DEST (xpattern); enum machine_mode mode = GET_MODE (xdest); enum machine_mode imode = int_mode_for_mode (mode); @@ -6864,7 +6864,7 @@ const char* avr_out_bitop (rtx insn, rtx *xop, int *plen) { /* CODE and MODE of the operation. */ - rtx xpattern = INSN_P (insn) ? single_set (insn) : insn; + rtx xpattern = INSN_P (insn) ? single_set (as_a <rtx_insn *> (insn)) : insn; enum rtx_code code = GET_CODE (SET_SRC (xpattern)); enum machine_mode mode = GET_MODE (xop[0]); @@ -7922,12 +7922,13 @@ _reg_unused_after (rtx_insn *insn, rtx reg) we must return 0. */ else if (code == INSN && GET_CODE (PATTERN (insn)) == SEQUENCE) { + rtx_sequence *seq = as_a <rtx_sequence *> (PATTERN (insn)); int i; int retval = 0; - for (i = 0; i < XVECLEN (PATTERN (insn), 0); i++) + for (i = 0; i < seq->len (); i++) { - rtx this_insn = XVECEXP (PATTERN (insn), 0, i); + rtx_insn *this_insn = seq->insn (i); rtx set = single_set (this_insn); if (CALL_P (this_insn)) |