diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_ccall.c | 5 |
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. */ \ |