Commit 301166b11e913f85d09f67af94264268811f23a9

Ole André Vadla Ravnås 2016-08-10T15:59:56

aarch64: Fix handling of variadic closures on iOS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
diff --git a/src/aarch64/ffi.c b/src/aarch64/ffi.c
index cf33abc..78328a8 100644
--- a/src/aarch64/ffi.c
+++ b/src/aarch64/ffi.c
@@ -917,6 +917,15 @@ ffi_closure_SYSV_inner (ffi_cif *cif,
 	default:
 	  abort();
 	}
+
+#if defined (__APPLE__)
+      if (i + 1 == cif->aarch64_nfixedargs)
+	{
+	  state.ngrn = N_X_ARG_REG;
+	  state.nsrn = N_V_ARG_REG;
+	  state.allocating_variadic = 1;
+	}
+#endif
     }
 
   flags = cif->flags;