mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-08 22:47:54 +02:00
* fix spilling of avx(512) registers
* get_scalar_mm_op fixed for M256 git-svn-id: trunk@47524 -
This commit is contained in:
parent
1d474f822e
commit
9c7cb3dbd7
@ -4784,6 +4784,16 @@ implementation
|
||||
R_SUBQ,
|
||||
R_SUBMMWHOLE:
|
||||
result:=taicpu.op_ref_reg(A_VMOVQ,S_NO,tmpref,r);
|
||||
R_SUBMMY:
|
||||
if ref.alignment>=32 then
|
||||
result:=taicpu.op_ref_reg(A_VMOVDQA,S_NO,tmpref,r)
|
||||
else
|
||||
result:=taicpu.op_ref_reg(A_VMOVDQU,S_NO,tmpref,r);
|
||||
R_SUBMMZ:
|
||||
if ref.alignment>=64 then
|
||||
result:=taicpu.op_ref_reg(A_VMOVDQA64,S_NO,tmpref,r)
|
||||
else
|
||||
result:=taicpu.op_ref_reg(A_VMOVDQU64,S_NO,tmpref,r);
|
||||
R_SUBMMX:
|
||||
result:=taicpu.op_ref_reg(A_VMOVDQU,S_NO,tmpref,r);
|
||||
else
|
||||
@ -4843,6 +4853,16 @@ implementation
|
||||
result:=taicpu.op_reg_ref(A_VMOVSD,S_NO,r,tmpref);
|
||||
R_SUBMMS:
|
||||
result:=taicpu.op_reg_ref(A_VMOVSS,S_NO,r,tmpref);
|
||||
R_SUBMMY:
|
||||
if ref.alignment>=32 then
|
||||
result:=taicpu.op_reg_ref(A_VMOVDQA,S_NO,r,tmpref)
|
||||
else
|
||||
result:=taicpu.op_reg_ref(A_VMOVDQU,S_NO,r,tmpref);
|
||||
R_SUBMMZ:
|
||||
if ref.alignment>=64 then
|
||||
result:=taicpu.op_reg_ref(A_VMOVDQA64,S_NO,r,tmpref)
|
||||
else
|
||||
result:=taicpu.op_reg_ref(A_VMOVDQU64,S_NO,r,tmpref);
|
||||
R_SUBQ,
|
||||
R_SUBMMWHOLE:
|
||||
result:=taicpu.op_reg_ref(A_VMOVQ,S_NO,r,tmpref);
|
||||
|
@ -1399,7 +1399,12 @@ unit cgx86;
|
||||
OS_M512:
|
||||
{ 256-bit aligned vector }
|
||||
if UseAVX then
|
||||
result:=A_VMOVAPS
|
||||
begin
|
||||
if aligned then
|
||||
result:=A_VMOVAPS
|
||||
else
|
||||
result:=A_VMOVUPS;
|
||||
end
|
||||
else
|
||||
{ SSE does not support 256-bit or 512-bit vectors }
|
||||
InternalError(2018012930);
|
||||
|
Loading…
Reference in New Issue
Block a user