diff --git a/compiler/x86/nx86add.pas b/compiler/x86/nx86add.pas index 8af341c1ef..786f24b64f 100644 --- a/compiler/x86/nx86add.pas +++ b/compiler/x86/nx86add.pas @@ -725,6 +725,10 @@ unit nx86add; end else begin + if not(nf_swaped in flags) then + if right.location.loc in [LOC_FPUREGISTER,LOC_CFPUREGISTER] then + location_force_mem(exprasmlist,right.location); + location_force_mmregscalar(exprasmlist,left.location,false); location.register:=left.location.register; { force floating point reg. location to be written to memory,