aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2020-03-20 14:10:18 +0100
committerMike Pall <mike>2020-03-20 14:10:18 +0100
commit9143e86498436892cb4316550be4d45b68a61224 (patch)
tree30399d76ee9bd29b77db6b9c89d9549664e9b887
parentfc1c4da3cc2b3bb51109a3028b696dbd05add5dc (diff)
downloadluajit-9143e86498436892cb4316550be4d45b68a61224.tar.gz
luajit-9143e86498436892cb4316550be4d45b68a61224.tar.bz2
luajit-9143e86498436892cb4316550be4d45b68a61224.zip
FFI/ARM64: Fix pass-by-value struct calling conventions.
-rw-r--r--src/lj_ccall.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_ccall.c b/src/lj_ccall.c
index a9b81aa5..499a01d8 100644
--- a/src/lj_ccall.c
+++ b/src/lj_ccall.c
@@ -337,7 +337,8 @@
337 if (LJ_TARGET_IOS && isva) { \ 337 if (LJ_TARGET_IOS && isva) { \
338 /* IOS: All variadic arguments are on the stack. */ \ 338 /* IOS: All variadic arguments are on the stack. */ \
339 } else if (isfp) { /* Try to pass argument in FPRs. */ \ 339 } else if (isfp) { /* Try to pass argument in FPRs. */ \
340 int n2 = ctype_isvector(d->info) ? 1 : n*isfp; \ 340 int n2 = ctype_isvector(d->info) ? 1 : \
341 isfp == 1 ? n : (d->size >> (4-isfp)); \
341 if (nfpr + n2 <= CCALL_NARG_FPR) { \ 342 if (nfpr + n2 <= CCALL_NARG_FPR) { \
342 dp = &cc->fpr[nfpr]; \ 343 dp = &cc->fpr[nfpr]; \
343 nfpr += n2; \ 344 nfpr += n2; \