Explorar el Código

* fix tcgx86.a_loadmm_reg_ref and tcgx86.a_loadmm_ref_reg for 64 OS_M512

git-svn-id: trunk@47315 -
florian hace 4 años
padre
commit
f8d33dc188
Se han modificado 1 ficheros con 9 adiciones y 10 borrados
  1. 9 10
      compiler/x86/cgx86.pas

+ 9 - 10
compiler/x86/cgx86.pas

@@ -1582,9 +1582,9 @@ unit cgx86;
                  if UseAVX then
                    begin
                      if GetRefAlignment(tmpref) = 64 then
-                       op := A_VMOVDQA
+                       op := A_VMOVDQA64
                      else
-                       op := A_VMOVDQU;
+                       op := A_VMOVDQU64;
                    end
                  else
                    { SSE doesn't support 512-bit vectors }
@@ -1674,9 +1674,9 @@ unit cgx86;
                  if UseAVX then
                  begin
                    if GetRefAlignment(tmpref) = 64 then
-                     op := A_VMOVDQA
+                     op := A_VMOVDQA64
                    else
-                     op := A_VMOVDQU;
+                     op := A_VMOVDQU64;
                  end else
                    { SSE doesn't support 512-bit vectors }
                    InternalError(2018012945);
@@ -2778,16 +2778,15 @@ unit cgx86;
       if cs_opt_size in current_settings.optimizerswitches then
         helpsize:=2*sizeof(aword);
 {$ifndef i8086}
-      if (FPUX86_HAS_AVX512F in fpu_capabilities[current_settings.fputype]) and
-         ((len mod 8)=0) and (len<=128) then
-         cm:=copy_avx512
-      else
       { avx helps only to reduce size, using it in general does at least not help on
         an i7-4770
         but using the xmm registers reduces register pressure (FK) }
       if (FPUX86_HAS_AVXUNIT in fpu_capabilities[current_settings.fputype]) and
-         ((len mod 8)=0) and (len<=48) {$ifndef i386}and (len<>8){$endif i386} then
-         cm:=copy_avx
+        ((len mod 8)=0) and (len<=48) {$ifndef i386}and (len<>8){$endif i386} then
+        cm:=copy_avx
+      else if (FPUX86_HAS_AVX512F in fpu_capabilities[current_settings.fputype]) and
+        ((len mod 8)=0) and (len<=128) {$ifndef i386}and (len<>8){$endif i386} then
+        cm:=copy_avx512
       else
       { I'am not sure what CPUs would benefit from using sse instructions for moves
         but using the xmm registers reduces register pressure (FK) }