浏览代码

* also support LOC_CREGISTER and LOC_CREFERENCE in in_not_assign_x and in_neg_assign_x

git-svn-id: trunk@35751 -
nickysn 8 年之前
父节点
当前提交
c6680a32d7
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      compiler/ncginl.pas

+ 2 - 2
compiler/ncginl.pas

@@ -513,7 +513,7 @@ implementation
 
 
           location_reset(location,LOC_VOID,OS_NO);
           location_reset(location,LOC_VOID,OS_NO);
 
 
-          if left.location.loc=LOC_REGISTER then
+          if left.location.loc in [LOC_REGISTER,LOC_CREGISTER] then
             begin
             begin
 {$ifndef cpu64bitalu}
 {$ifndef cpu64bitalu}
               if def_cgsize(left.resultdef) in [OS_64,OS_S64] then
               if def_cgsize(left.resultdef) in [OS_64,OS_S64] then
@@ -522,7 +522,7 @@ implementation
 {$endif not cpu64bitalu}
 {$endif not cpu64bitalu}
                 hlcg.a_op_reg_loc(current_asmdata.CurrAsmList,negnotop[inlinenumber],left.resultdef,left.location.register,left.location);
                 hlcg.a_op_reg_loc(current_asmdata.CurrAsmList,negnotop[inlinenumber],left.resultdef,left.location.register,left.location);
             end
             end
-          else if left.location.loc=LOC_REFERENCE then
+          else if left.location.loc in [LOC_REFERENCE,LOC_CREFERENCE] then
             begin
             begin
 {$ifndef cpu64bitalu}
 {$ifndef cpu64bitalu}
               if def_cgsize(left.resultdef) in [OS_64,OS_S64] then
               if def_cgsize(left.resultdef) in [OS_64,OS_S64] then