Selaa lähdekoodia

m68k: define cpurox and enabled the rotate-related optimizations on CPUs which support rotate instructionsoptions.pas

git-svn-id: trunk@36302 -
Károly Balogh 8 vuotta sitten
vanhempi
commit
3e8ee48458
2 muutettua tiedostoa jossa 4 lisäystä ja 0 poistoa
  1. 1 0
      compiler/fpcdefs.inc
  2. 3 0
      compiler/nadd.pas

+ 1 - 0
compiler/fpcdefs.inc

@@ -162,6 +162,7 @@
   {$define cpu32bitaddr}
   {$define cpu32bitalu}
   {$define cpuflags}
+  {$define cpurox}
   {$define cpufpemu}
   {$define cpurefshaveindexreg}
   {$define cpucapabilities}

+ 3 - 0
compiler/nadd.pas

@@ -1068,6 +1068,9 @@ implementation
 {$ifdef cpurox}
             { optimize (i shl x) or (i shr (bitsizeof(i)-x)) into rol(x,i) (and different flavours with shl/shr swapped etc.) }
             if (nodetype=orn)
+{$ifdef m68k}
+               and (CPUM68K_HAS_ROLROR in cpu_capabilities[current_settings.cputype])
+{$endif m68k}
 {$ifndef cpu64bitalu}
                and (left.resultdef.typ=orddef) and
                not(torddef(left.resultdef).ordtype in [s64bit,u64bit,scurrency])