diff -Nurp a/gcc/lra-assigns.c b/gcc/lra-assigns.c --- a/gcc/lra-assigns.c 2020-04-17 16:27:46.192000000 +0800 +++ b/gcc/lra-assigns.c 2020-04-17 16:29:37.125688580 +0800 @@ -968,6 +968,8 @@ spill_for (int regno, bitmap spilled_pse bitmap_clear (&spill_pseudos_bitmap); for (j = hard_regno_nregs (hard_regno, mode) - 1; j >= 0; j--) { + if (hard_regno + j >= FIRST_PSEUDO_REGISTER) + break; if (try_hard_reg_pseudos_check[hard_regno + j] != curr_pseudo_check) continue; lra_assert (!bitmap_empty_p (&try_hard_reg_pseudos[hard_regno + j]));