mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-04 18:50:37 +02:00
* fix tcgx86.a_loadmm_reg_ref and tcgx86.a_loadmm_ref_reg for 64 OS_M512
git-svn-id: trunk@47315 -
This commit is contained in:
parent
60bb8600a1
commit
f8d33dc188
@ -1582,9 +1582,9 @@ unit cgx86;
|
|||||||
if UseAVX then
|
if UseAVX then
|
||||||
begin
|
begin
|
||||||
if GetRefAlignment(tmpref) = 64 then
|
if GetRefAlignment(tmpref) = 64 then
|
||||||
op := A_VMOVDQA
|
op := A_VMOVDQA64
|
||||||
else
|
else
|
||||||
op := A_VMOVDQU;
|
op := A_VMOVDQU64;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
{ SSE doesn't support 512-bit vectors }
|
{ SSE doesn't support 512-bit vectors }
|
||||||
@ -1674,9 +1674,9 @@ unit cgx86;
|
|||||||
if UseAVX then
|
if UseAVX then
|
||||||
begin
|
begin
|
||||||
if GetRefAlignment(tmpref) = 64 then
|
if GetRefAlignment(tmpref) = 64 then
|
||||||
op := A_VMOVDQA
|
op := A_VMOVDQA64
|
||||||
else
|
else
|
||||||
op := A_VMOVDQU;
|
op := A_VMOVDQU64;
|
||||||
end else
|
end else
|
||||||
{ SSE doesn't support 512-bit vectors }
|
{ SSE doesn't support 512-bit vectors }
|
||||||
InternalError(2018012945);
|
InternalError(2018012945);
|
||||||
@ -2778,16 +2778,15 @@ unit cgx86;
|
|||||||
if cs_opt_size in current_settings.optimizerswitches then
|
if cs_opt_size in current_settings.optimizerswitches then
|
||||||
helpsize:=2*sizeof(aword);
|
helpsize:=2*sizeof(aword);
|
||||||
{$ifndef i8086}
|
{$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
|
{ avx helps only to reduce size, using it in general does at least not help on
|
||||||
an i7-4770
|
an i7-4770
|
||||||
but using the xmm registers reduces register pressure (FK) }
|
but using the xmm registers reduces register pressure (FK) }
|
||||||
if (FPUX86_HAS_AVXUNIT in fpu_capabilities[current_settings.fputype]) and
|
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
|
((len mod 8)=0) and (len<=48) {$ifndef i386}and (len<>8){$endif i386} then
|
||||||
cm:=copy_avx
|
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
|
else
|
||||||
{ I'am not sure what CPUs would benefit from using sse instructions for moves
|
{ I'am not sure what CPUs would benefit from using sse instructions for moves
|
||||||
but using the xmm registers reduces register pressure (FK) }
|
but using the xmm registers reduces register pressure (FK) }
|
||||||
|
Loading…
Reference in New Issue
Block a user