mirror of
https://github.com/TinyCC/tinycc.git
synced 2025-11-16 04:24:45 +00:00
Fix long double to long long for x86_64
This commit is contained in:
3
tcctok.h
3
tcctok.h
@@ -290,6 +290,9 @@
|
|||||||
DEF(TOK___fixdfdi, "__fixdfdi")
|
DEF(TOK___fixdfdi, "__fixdfdi")
|
||||||
DEF(TOK___fixxfdi, "__fixxfdi")
|
DEF(TOK___fixxfdi, "__fixxfdi")
|
||||||
#endif
|
#endif
|
||||||
|
#if defined TCC_TARGET_X86_64
|
||||||
|
DEF(TOK___fixxfdi, "__fixxfdi")
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined TCC_TARGET_I386 || defined TCC_TARGET_X86_64
|
#if defined TCC_TARGET_I386 || defined TCC_TARGET_X86_64
|
||||||
DEF(TOK_alloca, "alloca")
|
DEF(TOK_alloca, "alloca")
|
||||||
|
|||||||
@@ -2153,6 +2153,15 @@ void gen_cvt_ftoi(int t)
|
|||||||
ft = vtop->type.t;
|
ft = vtop->type.t;
|
||||||
bt = ft & VT_BTYPE;
|
bt = ft & VT_BTYPE;
|
||||||
if (bt == VT_LDOUBLE) {
|
if (bt == VT_LDOUBLE) {
|
||||||
|
if (t != VT_INT) {
|
||||||
|
vpush_helper_func(TOK___fixxfdi);
|
||||||
|
vswap();
|
||||||
|
gfunc_call(1);
|
||||||
|
vpushi(0);
|
||||||
|
vtop->r = REG_IRET;
|
||||||
|
vtop->r2 = REG_IRE2;
|
||||||
|
return;
|
||||||
|
}
|
||||||
gen_cvt_ftof(VT_DOUBLE);
|
gen_cvt_ftof(VT_DOUBLE);
|
||||||
bt = VT_DOUBLE;
|
bt = VT_DOUBLE;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user