gcc/fix-regno-out-of-range.patch

13 lines
576 B
Diff
Raw Normal View History

2020-05-14 10:48:46 +08:00
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]));