From ddbd42e66cc71b470730037d76f4f267e98d8d40 Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 13 Apr 2026 19:25:11 +0200 Subject: C99 complex types MVP Missing: static eval of complex values, Silly inefficient implementation of equality comparisons between them The whole thing is pretty inefficient without proper aggregate mem2reg anyway --- src/t_x86-64_sysv.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/t_x86-64_sysv.c') diff --git a/src/t_x86-64_sysv.c b/src/t_x86-64_sysv.c index 8686571..9f1d59c 100644 --- a/src/t_x86-64_sysv.c +++ b/src/t_x86-64_sysv.c @@ -5,6 +5,10 @@ static int classify(uchar cls[2], const TypeData *td, uint off); static void clsscalar(uchar cls[2], uint off, Type ty) { + if (iscomplex(ty)) { + classify(cls, &typedata[complex2struct(ty).dat], off); + return; + } enum irclass k = type2cls[scalartypet(ty)]; uchar *fcls = &cls[off/8]; if (isflt(ty)) { /* SSE */ -- cgit v1.2.3