Explorar el Código

* fixed and released optimization to prevent some superfluous
parameter copying for ppc32/ppc64

git-svn-id: trunk@4186 -

Jonas Maebe hace 19 años
padre
commit
743b05e911
Se han modificado 1 ficheros con 4 adiciones y 3 borrados
  1. 4 3
      compiler/paramgr.pas

+ 4 - 3
compiler/paramgr.pas

@@ -322,12 +322,13 @@ implementation
             newparaloc:=cgpara.add_location;
             newparaloc^.size:=paraloc^.size;
 {$warning maybe release this optimization for all targets?}
-{$ifdef sparc}
+{$if defined(sparc) or defined(powerpc) or defined(powerpc64)}
             { Does it fit a register? }
-            if len<=sizeof(aint) then
+            if (len<=sizeof(aint)) and
+               (cgpara.size in [OS_8,OS_16,OS_32,OS_64,OS_128,OS_S8,OS_S16,OS_S32,OS_S64,OS_S128]) then
               newparaloc^.loc:=LOC_REGISTER
             else
-{$endif sparc}
+{$endif defined(sparc) or defined(powerpc) or defined(powerpc64) }
               newparaloc^.loc:=paraloc^.loc;
             case newparaloc^.loc of
               LOC_REGISTER :