From 782787f1fa4a7a5928385a4ebedc902aed08ecec Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sun, 8 Sep 2013 13:11:02 +0200 Subject: [PATCH] FFI/x64: Fix passing of vector arguments to calls. --- src/lj_ccall.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lj_ccall.c b/src/lj_ccall.c index eb73604f..97dcc546 100644 --- a/src/lj_ccall.c +++ b/src/lj_ccall.c @@ -173,9 +173,10 @@ #define CCALL_HANDLE_REGARG \ if (isfp) { /* Try to pass argument in FPRs. */ \ - if (nfpr + n <= CCALL_NARG_FPR) { \ + int n2 = ctype_isvector(d->info) ? 1 : n; \ + if (nfpr + n2 <= CCALL_NARG_FPR) { \ dp = &cc->fpr[nfpr]; \ - nfpr += n; \ + nfpr += n2; \ goto done; \ } \ } else { /* Try to pass argument in GPRs. */ \