bump max parallel move size

This commit is contained in:
Quentin Carbonneaux 2026-05-05 15:28:38 +02:00
parent e01207f772
commit 2ccbf477c7

10
rega.c
View File

@ -15,13 +15,17 @@ struct RMap {
int n; int n;
}; };
enum {
NPm = 128, /* max copies in a parallel move */
};
static bits regu; /* registers used */ static bits regu; /* registers used */
static Tmp *tmp; /* function temporaries */ static Tmp *tmp; /* function temporaries */
static Mem *mem; /* function mem references */ static Mem *mem; /* function mem references */
static struct { static struct {
Ref src, dst; Ref src, dst;
int cls; int cls;
} pm[Tmp0]; /* parallel move constructed */ } pm[NPm]; /* parallel move constructed */
static int npm; /* size of pm */ static int npm; /* size of pm */
static int loop; /* current loop level */ static int loop; /* current loop level */
@ -190,8 +194,8 @@ mdump(RMap *m)
static void static void
pmadd(Ref src, Ref dst, int k) pmadd(Ref src, Ref dst, int k)
{ {
if (npm == Tmp0) if (npm == NPm)
die("cannot have more moves than registers"); die("no more pm slots");
pm[npm].src = src; pm[npm].src = src;
pm[npm].dst = dst; pm[npm].dst = dst;
pm[npm].cls = k; pm[npm].cls = k;