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