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___fixxfdi, "__fixxfdi")
|
||||
#endif
|
||||
#if defined TCC_TARGET_X86_64
|
||||
DEF(TOK___fixxfdi, "__fixxfdi")
|
||||
#endif
|
||||
|
||||
#if defined TCC_TARGET_I386 || defined TCC_TARGET_X86_64
|
||||
DEF(TOK_alloca, "alloca")
|
||||
|
||||
@@ -2153,6 +2153,15 @@ 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;
|
||||
vtop->r2 = REG_IRE2;
|
||||
return;
|
||||
}
|
||||
gen_cvt_ftof(VT_DOUBLE);
|
||||
bt = VT_DOUBLE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user