|
@@ -147,8 +147,6 @@ var
|
|
|
href: treference;
|
|
|
hregister: tregister;
|
|
|
l1, l2: tasmlabel;
|
|
|
- addend: array[boolean] of longword;
|
|
|
- bigendian: boolean;
|
|
|
begin
|
|
|
location_reset(location, LOC_FPUREGISTER, def_cgsize(resultdef));
|
|
|
if is_signed(left.resultdef) then
|
|
@@ -173,14 +171,7 @@ begin
|
|
|
hregister := cg.getfpuregister(current_asmdata.CurrAsmList, OS_F64);
|
|
|
new_section(current_asmdata.asmlists[al_typedconsts],sec_rodata_norel,l1.name,const_align(8));
|
|
|
current_asmdata.asmlists[al_typedconsts].concat(Tai_label.Create(l1));
|
|
|
-
|
|
|
- addend[false]:=0;
|
|
|
- addend[true]:=$41f00000;
|
|
|
- bigendian:=(target_info.endian=endian_big);
|
|
|
-
|
|
|
- { add double number 4294967296.0 = (1ull^32) = 0x41f00000,00000000 in little endian hex}
|
|
|
- current_asmdata.asmlists[al_typedconsts].concat(Tai_const.Create_32bit(addend[bigendian]));
|
|
|
- current_asmdata.asmlists[al_typedconsts].concat(Tai_const.Create_32bit(addend[not bigendian]));
|
|
|
+ current_asmdata.asmlists[al_typedconsts].concat(Tai_real_64bit.Create(4294967296.0));
|
|
|
|
|
|
cg.a_loadfpu_ref_reg(current_asmdata.CurrAsmList, OS_F64, OS_F64, href, hregister);
|
|
|
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg_reg(A_ADD_D, location.Register, hregister, location.Register));
|