瀏覽代碼

* create shorter code for -<single/double> when generating avx code

git-svn-id: trunk@27347 -
florian 11 年之前
父節點
當前提交
c38e52bb27
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      compiler/x86/nx86mat.pas

+ 3 - 3
compiler/x86/nx86mat.pas

@@ -176,13 +176,13 @@ interface
             end;
 
             reference_reset_symbol(href,l1,0,resultdef.alignment);
-            reg:=cg.getmmregister(current_asmdata.CurrAsmList,def_cgsize(resultdef));
-            cg.a_loadmm_ref_reg(current_asmdata.CurrAsmList,def_cgsize(resultdef),def_cgsize(resultdef),href,reg,mms_movescalar);
 
             if UseAVX then
-              cg.a_opmm_reg_reg_reg(current_asmdata.CurrAsmList,OP_XOR,left.location.size,reg,left.location.register,location.register,nil)
+              cg.a_opmm_ref_reg_reg(current_asmdata.CurrAsmList,OP_XOR,left.location.size,href,left.location.register,location.register,nil)
             else
               begin
+                reg:=cg.getmmregister(current_asmdata.CurrAsmList,def_cgsize(resultdef));
+                cg.a_loadmm_ref_reg(current_asmdata.CurrAsmList,def_cgsize(resultdef),def_cgsize(resultdef),href,reg,mms_movescalar);
                 cg.a_loadmm_reg_reg(current_asmdata.CurrAsmList,def_cgsize(resultdef),def_cgsize(resultdef),left.location.register,location.register,mms_movescalar);
                 cg.a_opmm_reg_reg(current_asmdata.CurrAsmList,OP_XOR,left.location.size,reg,location.register,nil);
               end;