diff options
| author | 2025-12-18 20:27:27 +0100 | |
|---|---|---|
| committer | 2025-12-18 20:27:27 +0100 | |
| commit | b11f95cec7468f99d2293863fec8e76e0529d3a8 (patch) | |
| tree | e0dbf506af0f4486cc0ca5975cbb45babcf89834 /x86_64 | |
| parent | 80858d909be0915b2f0c0202dac33b9627c7a405 (diff) | |
x86-64 abi: fix wrong class being used in float vararg
Diffstat (limited to 'x86_64')
| -rw-r--r-- | x86_64/sysv.c | 2 |
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)); |