aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/c.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2026-03-21 22:20:34 +0100
committerlemon <lsof@mailbox.org>2026-03-22 10:49:26 +0100
commit79874c83bf76a5b3efd3d558933b90d9b53b829e (patch)
tree566930a17f1e090f86c2051ffec33106012908eb /src/c.c
parent83342d3b60438ef2421160a0673fb45d48b2f39f (diff)
IR: add 3rd operand to Instr
The motivation is for aarch64 msub/madd instrs, for isel to produce. But it should be useful for other things too.
Diffstat (limited to 'src/c.c')
-rw-r--r--src/c.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/c.c b/src/c.c
index 90ff923..248a095 100644
--- a/src/c.c
+++ b/src/c.c
@@ -3121,7 +3121,7 @@ geninit(Function *fn, Type t, Ref dst, const Expr *src)
/* write individual zeros at non initialized gaps */
for (uint i = 0; bsiter(&i, azero, countof(azero)) && i < siz; i += align) {
adr = irbinop(fn, Oadd, KPTR, dst, mkref(RICON, i));
- addinstr(fn, mkinstr(Ostorei8 + ilog2(align), 0, .l = adr, .r = ZEROREF));
+ addinstr(fn, mkinstr2(Ostorei8 + ilog2(align), 0, adr, ZEROREF));
}
} else {
goto Memset0;
@@ -4564,7 +4564,7 @@ function(CComp *cm, Function *fn, internstr *pnames, const Span *pspans, uchar *
EMITS {
for (int i = 0; i < td->nmemb; ++i) {
IRType pty = mkirtype(td->param[i]);
- Ref r = addinstr(fn, mkinstr(Oparam, pty.isagg ? KPTR : pty.cls,
+ Ref r = addinstr(fn, mkinstr2(Oparam, pty.isagg ? KPTR : pty.cls,
mkref(RICON, i), mktyperef(pty)));
assert(r.t == RTMP && r.i == i);
}
@@ -4579,7 +4579,7 @@ function(CComp *cm, Function *fn, internstr *pnames, const Span *pspans, uchar *
arg.id = addinstr(fn, mkalloca(typesize(arg.ty), typealign(arg.ty))).i;
genstore(fn, arg.ty, mkref(RTMP, arg.id), mkref(RTMP, i));
} else {
- arg.id = addinstr(fn, mkinstr(Ocopy, KPTR, mkref(RTMP, i))).i;
+ arg.id = addinstr(fn, mkinstr1(Ocopy, KPTR, mkref(RTMP, i))).i;
}
}
putdecl(cm, &arg);