aboutsummaryrefslogtreecommitdiffhomepage
path: root/x86_64
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2025-12-18 20:27:27 +0100
committerlemon <lsof@mailbox.org>2025-12-18 20:27:27 +0100
commitb11f95cec7468f99d2293863fec8e76e0529d3a8 (patch)
treee0dbf506af0f4486cc0ca5975cbb45babcf89834 /x86_64
parent80858d909be0915b2f0c0202dac33b9627c7a405 (diff)
x86-64 abi: fix wrong class being used in float vararg
Diffstat (limited to 'x86_64')
-rw-r--r--x86_64/sysv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/x86_64/sysv.c b/x86_64/sysv.c
index 32cc9e5..1c63782 100644
--- a/x86_64/sysv.c
+++ b/x86_64/sysv.c
@@ -275,7 +275,7 @@ vaarg(struct function *fn, struct block *blk, int *curi)
phi = insertphi(merge, KPTR);
memcpy(phitab.p[instrtab[phi.i].l.i], phiargs, sizeof phiargs);
if (!ty.isagg) {
- instrtab[var] = mkinstr(cls[0] == KI32 ? Oloads32 : Oloadi64, cls[0], phi);
+ instrtab[var] = mkinstr(cls2load[cls[0]], cls[0], phi);
} else {
instrtab[var] = mkalloca(8, 8);
tmp = insertinstr(merge, 1, mkinstr(Oloadi64, KI64, phi));