aboutsummaryrefslogtreecommitdiff
path: root/arm-gen.c
diff options
context:
space:
mode:
Diffstat (limited to 'arm-gen.c')
-rw-r--r--arm-gen.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arm-gen.c b/arm-gen.c
index 488de76..0fa2eb0 100644
--- a/arm-gen.c
+++ b/arm-gen.c
@@ -1227,7 +1227,8 @@ void gfunc_prolog(CType *func_type)
#ifdef TCC_ARM_HARDFLOAT
if (!variadic && (is_float(sym2->type.t)
|| is_hgen_float_aggr(&sym2->type))) {
- int tmpnf = assign_vfpreg(&avregs, align, size) + 1;
+ int tmpnf = assign_vfpreg(&avregs, align, size);
+ tmpnf += (size + 3) / 4;
nf = (tmpnf > nf) ? tmpnf : nf;
} else
#endif