ソースを参照

FFI/x64: Fix passing of vector arguments to calls.

Mike Pall 12 年 前
コミット
782787f1fa
1 ファイル変更3 行追加2 行削除
  1. 3 2
      src/lj_ccall.c

+ 3 - 2
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. */ \