From cbca5355c0c0b1910735b1430e2552855a2aa5c7 Mon Sep 17 00:00:00 2001 From: lemon Date: Sun, 22 Mar 2026 19:25:46 +0100 Subject: aarch64: rem/urem, bswap*, arg bugfix --- src/ir_regalloc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/ir_regalloc.c') diff --git a/src/ir_regalloc.c b/src/ir_regalloc.c index 41a4026..3b204c6 100644 --- a/src/ir_regalloc.c +++ b/src/ir_regalloc.c @@ -725,9 +725,9 @@ buildintervals(RegAlloc *ra) queue[0] = ins->r; } else { switch ((nqueue = opnarg[ins->op])) { - case 2: queue[2] = ins->oper[2]; - case 1: queue[1] = ins->oper[1]; - case 0: queue[0] = ins->oper[0]; + case 3: queue[2] = ins->oper[2]; + case 2: queue[1] = ins->oper[1]; + case 1: queue[0] = ins->oper[0]; } } if (0) { @@ -1148,15 +1148,15 @@ devirt(RegAlloc *ra, Block *blk) Interval *it; Alloc *alloc; IRAddr newaddr; - Ref *argref[4]; + Ref *argref[6]; int curi0; int naddr = 0; int nargref = 0; int nspill = 0; /** devirtualize operands **/ - for (int i = 0; i < 2; ++i) { - Ref *r = &i[&ins->l]; + for (int i = 0; i < 3; ++i) { + Ref *r = &ins->oper[i]; if (r->t == RADDR) { IRAddr *a = &addrtab.p[r->i]; ++naddr; -- cgit v1.2.3