aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/t_x86-64_sysv.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/t_x86-64_sysv.c')
-rw-r--r--src/t_x86-64_sysv.c4
1 files changed, 4 insertions, 0 deletions
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 */