Browse Source

* fixed sse addition if operands were swapped and in float registers

git-svn-id: trunk@3885 -
florian 19 năm trước cách đây
mục cha
commit
6ffe481799
1 tập tin đã thay đổi với 4 bổ sung0 xóa
  1. 4 0
      compiler/x86/nx86add.pas

+ 4 - 0
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(current_asmdata.CurrAsmList,left.location,false);
             location.register:=left.location.register;
             { force floating point reg. location to be written to memory,