ソースを参照

avoid some unnecessary sign extensions

git-svn-id: trunk@27111 -
Károly Balogh 11 年 前
コミット
552ab2938e
1 ファイル変更4 行追加2 行削除
  1. 4 2
      compiler/m68k/cgcpu.pas

+ 4 - 2
compiler/m68k/cgcpu.pas

@@ -936,7 +936,8 @@ unit cgcpu;
          list.concat(instr);
          list.concat(instr);
 
 
          { zero/sign extend register to 32-bit }
          { zero/sign extend register to 32-bit }
-         sign_extend(list, fromsize, reg2);
+         if tcgsize2size[fromsize]<tcgsize2size[tosize] then
+           sign_extend(list, fromsize, reg2);
       end;
       end;
 
 
 
 
@@ -953,7 +954,8 @@ unit cgcpu;
            size:=tosize;
            size:=tosize;
          list.concat(taicpu.op_ref_reg(A_MOVE,TCGSize2OpSize[size],href,register));
          list.concat(taicpu.op_ref_reg(A_MOVE,TCGSize2OpSize[size],href,register));
          { extend the value in the register }
          { extend the value in the register }
-         sign_extend(list, fromsize, register);
+         if tcgsize2size[fromsize]<tcgsize2size[tosize] then
+           sign_extend(list, fromsize, register);
       end;
       end;