diff --git a/Changelog b/Changelog index 9a497cf..20814c1 100644 --- a/Changelog +++ b/Changelog @@ -65,6 +65,7 @@ Bug fixes: - fix NaN comparison (Thomas Preud'homme) - use libtcc for static linking with runtime library (Thomas Preud'homme) - fix negation of 0.0 and -0.0 values (Thomas Preud'homme) +- fix integer to double conversion on ARM (Thomas Preud'homme) version 0.9.26: 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; } }