aboutsummaryrefslogtreecommitdiffhomepage
path: root/ir
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2025-11-12 17:58:51 +0100
committerlemon <lsof@mailbox.org>2025-11-12 18:03:42 +0100
commit82a3c1cd8d00bc342752c31116c497c52f6d8933 (patch)
tree9b4256a83c68b6569a75d08307a50a5662f2cfb2 /ir
parent070bf6f223b6cc6f3d7a6c28c1afce8c0bc8a72e (diff)
implement argument passing in stack
Diffstat (limited to 'ir')
-rw-r--r--ir/abi0.c1
-rw-r--r--ir/ir.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/ir/abi0.c b/ir/abi0.c
index 515ba1a..404947e 100644
--- a/ir/abi0.c
+++ b/ir/abi0.c
@@ -276,6 +276,7 @@ abi0_call(struct function *fn, struct instr *ins, struct block *blk, int *curi)
if (call->vararg == i) vararg = i2;
i2 += ret;
}
+ call->argstksiz = ns;
/* adjust return */
if (call->ret.isagg) {
ins->cls = 0;
diff --git a/ir/ir.h b/ir/ir.h
index 4c369a1..66fc56d 100644
--- a/ir/ir.h
+++ b/ir/ir.h
@@ -46,6 +46,7 @@ struct call {
union irtype ret;
ushort narg;
short vararg; /* first variadic arg or -1 */
+ ushort argstksiz;
struct abiarg *abiarg;
struct abiarg abiret[2];
};