diff --git a/x86_64-gen.c b/x86_64-gen.c index c62c8a0c..ac5c50a9 100644 --- a/x86_64-gen.c +++ b/x86_64-gen.c @@ -2121,17 +2121,14 @@ void gen_cvt_ftoi(int t) ft = vtop->type.t; bt = ft & VT_BTYPE; if (bt == VT_LDOUBLE) { - if (t != VT_INT) { - vpush_helper_func(TOK___fixxfdi); - vswap(); - gfunc_call(1); - vpushi(0); - vtop->r = REG_IRET; + vpush_helper_func(TOK___fixxfdi); + vswap(); + gfunc_call(1); + vpushi(0); + vtop->r = REG_IRET; + if (t != VT_INT) vtop->r2 = REG_IRE2; - return; - } - gen_cvt_ftof(VT_DOUBLE); - bt = VT_DOUBLE; + return; } gv(RC_FLOAT);