aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-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 @@
173 173
174#define CCALL_HANDLE_REGARG \ 174#define CCALL_HANDLE_REGARG \
175 if (isfp) { /* Try to pass argument in FPRs. */ \ 175 if (isfp) { /* Try to pass argument in FPRs. */ \
176 if (nfpr + n <= CCALL_NARG_FPR) { \ 176 int n2 = ctype_isvector(d->info) ? 1 : n; \
177 if (nfpr + n2 <= CCALL_NARG_FPR) { \
177 dp = &cc->fpr[nfpr]; \ 178 dp = &cc->fpr[nfpr]; \
178 nfpr += n; \ 179 nfpr += n2; \
179 goto done; \ 180 goto done; \
180 } \ 181 } \
181 } else { /* Try to pass argument in GPRs. */ \ 182 } else { /* Try to pass argument in GPRs. */ \