From 8630aeb8b43c507cd00f5b091ddcee4def464f4d Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 23 Mar 2026 19:20:32 +0100 Subject: IR: mark free'd instructions as such That way they are not copied when inlining. Also rename ninstr -> ninstrtab. opnarg -> opnoper --- src/ir_abi0.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/ir_abi0.c') diff --git a/src/ir_abi0.c b/src/ir_abi0.c index 61a310f..74a9d62 100644 --- a/src/ir_abi0.c +++ b/src/ir_abi0.c @@ -235,8 +235,9 @@ patcharg(Block *blk, int *icall, IRCall *call, return 1; } else { /* aggregate in registers */ Ref r[2]; + IRType typ = ref2type(arg->l); delinstr(blk, arginst); - load2regs(r, ref2type(arg->l), arg->r, nabi, abi, r2off, blk, &arginst); + load2regs(r, typ, arg->r, nabi, abi, r2off, blk, &arginst); for (int i = 0; i < nabi; ++i) insertinstr(blk, arginst++, mkinstr2(Oarg, 0, mktyperef(abi[i].ty), r[i])); *icall = arginst + (call->narg - argidx - 1); -- cgit v1.2.3