diff options
| author | 2026-03-22 19:25:46 +0100 | |
|---|---|---|
| committer | 2026-03-22 19:25:46 +0100 | |
| commit | cbca5355c0c0b1910735b1430e2552855a2aa5c7 (patch) | |
| tree | 7a0e0452f8dba566a5c7c0ed20dc4a60084bbea8 /src/ir_regalloc.c | |
| parent | 2d0b096a8c2f45370ef2535e1c500a008b949611 (diff) | |
aarch64: rem/urem, bswap*, arg bugfix
Diffstat (limited to 'src/ir_regalloc.c')
| -rw-r--r-- | src/ir_regalloc.c | 12 |
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; |