浏览代码

* source can also be a LOC_CREGISTER for bsr/bsf

git-svn-id: trunk@29980 -
Jonas Maebe 10 年之前
父节点
当前提交
5e339e89e4
共有 1 个文件被更改,包括 4 次插入4 次删除
  1. 4 4
      compiler/ncginl.pas

+ 4 - 4
compiler/ncginl.pas

@@ -749,15 +749,15 @@ implementation
       secondpass(left);
 
       opsize:=tcgsize2unsigned[left.location.size];
-      if opsize < OS_32 then
+      if opsize<OS_32 then
         opsize:=OS_32;
 
-      if (left.location.loc <> LOC_REGISTER) or
-         (left.location.size <> opsize) then
+      if not(left.location.loc in [LOC_REGISTER,LOC_CREGISTER]) or
+         (left.location.size<>opsize) then
         hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,cgsize_orddef(opsize),true);
 
       location_reset(location,LOC_REGISTER,opsize);
-      location.register := cg.getintregister(current_asmdata.CurrAsmList,opsize);
+      location.register:=cg.getintregister(current_asmdata.CurrAsmList,opsize);
       cg.a_bit_scan_reg_reg(current_asmdata.CurrAsmList,reverse,opsize,left.location.register,location.register);
     end;