瀏覽代碼

* allow swapping of operands for three operand instructions if they are commutative

florian 1 年之前
父節點
當前提交
2e86cdb620
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      compiler/x86/nx86add.pas

+ 1 - 1
compiler/x86/nx86add.pas

@@ -2130,7 +2130,7 @@ unit nx86add;
          ((nodetype=addn) and (left.location.loc in [LOC_REGISTER,LOC_CREGISTER,LOC_CONSTANT]) and (right.location.loc in [LOC_REGISTER,LOC_CREGISTER,LOC_CONSTANT])) then
          ((nodetype=addn) and (left.location.loc in [LOC_REGISTER,LOC_CREGISTER,LOC_CONSTANT]) and (right.location.loc in [LOC_REGISTER,LOC_CREGISTER,LOC_CONSTANT])) then
          begin
          begin
            { allocate registers }
            { allocate registers }
-           force_reg_left_right(false,true);
+           force_reg_left_right(nodetype<>subn,true);
            set_result_location_reg;
            set_result_location_reg;
            if nodetype<>subn then
            if nodetype<>subn then
             begin
             begin