mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 14:09:17 +02:00
* fixed occasional rounding error with currency constants on the LLVM targets
(fixes test/tcustomattr13.pp) git-svn-id: trunk@43017 -
This commit is contained in:
parent
4deb62ad87
commit
ff2d718699
@ -153,10 +153,12 @@ implementation
|
|||||||
s32real,s64real:
|
s32real,s64real:
|
||||||
current_asmdata.CurrAsmList.concat(taillvm.op_reg_size_fpconst_size(la_bitcast,location.register,resultdef,value_real,resultdef));
|
current_asmdata.CurrAsmList.concat(taillvm.op_reg_size_fpconst_size(la_bitcast,location.register,resultdef,value_real,resultdef));
|
||||||
{ comp and currency are handled as int64 at the llvm level }
|
{ comp and currency are handled as int64 at the llvm level }
|
||||||
s64comp,
|
s64comp:
|
||||||
s64currency:
|
|
||||||
{ sc80floattype instead of resultdef, see comment in thlcgllvm.a_loadfpu_ref_reg }
|
{ sc80floattype instead of resultdef, see comment in thlcgllvm.a_loadfpu_ref_reg }
|
||||||
current_asmdata.CurrAsmList.concat(taillvm.op_reg_size_const_size(la_sitofp,location.register,s64inttype,trunc(value_real),sc80floattype));
|
current_asmdata.CurrAsmList.concat(taillvm.op_reg_size_const_size(la_sitofp,location.register,s64inttype,trunc(value_real),sc80floattype));
|
||||||
|
s64currency:
|
||||||
|
{ sc80floattype instead of resultdef, see comment in thlcgllvm.a_loadfpu_ref_reg }
|
||||||
|
current_asmdata.CurrAsmList.concat(taillvm.op_reg_size_const_size(la_sitofp,location.register,s64inttype,trunc(value_currency),sc80floattype));
|
||||||
{$ifdef cpuextended}
|
{$ifdef cpuextended}
|
||||||
s80real,sc80real:
|
s80real,sc80real:
|
||||||
current_asmdata.CurrAsmList.concat(taillvm.op_reg_size_fpconst80_size(la_bitcast,location.register,resultdef,value_real,resultdef));
|
current_asmdata.CurrAsmList.concat(taillvm.op_reg_size_fpconst80_size(la_bitcast,location.register,resultdef,value_real,resultdef));
|
||||||
|
Loading…
Reference in New Issue
Block a user