瀏覽代碼

* make sure we use rlwi* when possible instead of andi.

Jonas Maebe 23 年之前
父節點
當前提交
c1e9bd36a3
共有 1 個文件被更改,包括 8 次插入3 次删除
  1. 8 3
      compiler/powerpc/cgcpu.pas

+ 8 - 3
compiler/powerpc/cgcpu.pas

@@ -70,7 +70,7 @@ unit cgcpu;
           l : tasmlabel);override;
         procedure a_cmp_reg_reg_label(list : taasmoutput;size : tcgsize;cmp_op : topcmp;reg1,reg2 : tregister;l : tasmlabel); override;
 
-	procedure a_jmp_always(list : taasmoutput;l: tasmlabel); override;
+        procedure a_jmp_always(list : taasmoutput;l: tasmlabel); override;
         procedure a_jmp_flags(list : taasmoutput;const f : TResFlags;l: tasmlabel); override;
 
         procedure g_flags2reg(list: taasmoutput; const f: TResFlags; reg: TRegister); override;
@@ -436,7 +436,9 @@ const
                 exit;
               end
             else if (longint(a) >= low(smallint)) and
-               (longint(a) <= high(smallint)) then
+               (longint(a) <= high(smallint)) and
+               (not(op in [OP_AND,OP_OR]) or
+                not get_rlwi_const(a,l1,l2)) then
               begin
                 list.concat(taicpu.op_reg_reg_const(oplo,dst,src,a));
                 exit;
@@ -1293,7 +1295,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.23  2002-07-11 14:41:34  florian
+  Revision 1.24  2002-07-21 17:00:23  jonas
+    * make sure we use rlwi* when possible instead of andi.
+
+  Revision 1.23  2002/07/11 14:41:34  florian
     * start of the new generic parameter handling
 
   Revision 1.22  2002/07/11 07:38:28  jonas