mark all vfp registers as used when done. To avoid assigning registers the would fit, once arguments have been on the stack, we mark all registers as used once we do not find a free register for the first time.
diff --git a/src/arm/ffi.c b/src/arm/ffi.c
index d52ad02..a8444c3 100644
--- a/src/arm/ffi.c
+++ b/src/arm/ffi.c
@@ -897,6 +897,9 @@ static void place_vfp_arg (ffi_cif *cif, ffi_type *t)
return;
next_reg: ;
}
+ // done mark all regs as used
+ cif->vfp_reg_free = 16;
+ cif->vfp_used = 0xFFFF;
}
static void layout_vfp_args (ffi_cif *cif)