summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2013-09-08 13:11:02 +0200
committerMike Pall <mike>2013-09-08 13:11:02 +0200
commit782787f1fa4a7a5928385a4ebedc902aed08ecec (patch)
tree36f8353cda46880682ed28f5517e85b99f6bfdb3
parent93c2b939bddbbe766f3215455d8144650df0780b (diff)
downloadluajit2-782787f1fa4a7a5928385a4ebedc902aed08ecec.tar.gz
FFI/x64: Fix passing of vector arguments to calls.
-rw-r--r--src/lj_ccall.c5
1 files 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. */ \