aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ir_regalloc.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2026-03-22 19:25:46 +0100
committerlemon <lsof@mailbox.org>2026-03-22 19:25:46 +0100
commitcbca5355c0c0b1910735b1430e2552855a2aa5c7 (patch)
tree7a0e0452f8dba566a5c7c0ed20dc4a60084bbea8 /src/ir_regalloc.c
parent2d0b096a8c2f45370ef2535e1c500a008b949611 (diff)
aarch64: rem/urem, bswap*, arg bugfix
Diffstat (limited to 'src/ir_regalloc.c')
-rw-r--r--src/ir_regalloc.c12
1 files changed, 6 insertions, 6 deletions
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;