aboutsummaryrefslogtreecommitdiff
path: root/arm-gen.c
diff options
context:
space:
mode:
Diffstat (limited to 'arm-gen.c')
-rw-r--r--arm-gen.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arm-gen.c b/arm-gen.c
index 9611dca..c746e91 100644
--- a/arm-gen.c
+++ b/arm-gen.c
@@ -1979,8 +1979,17 @@ ST_FUNC void gen_cvt_itof1(int t)
vpush_global_sym(func_type, func);
vswap();
gfunc_call(1);
+#if defined(TCC_ARM_VFP) && defined(TCC_ARM_EABI)
+ r=get_reg(RC_FLOAT);
+ r2=vfpr(r);
+ o(0xEE000B10|(r2<<16)); /* vmov.32 dr2[0], r0 */
+ o(0xEE201B10|(r2<<16)); /* vmov.32 dr2[1], r1 */
+ vpushi(0);
+ vtop->r=r;
+#else
vpushi(0);
vtop->r=TREG_F0;
+#endif
return;
}
}