mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 04:49:20 +02:00
working on new testmethods avx512-memref-operands - 'compressed disp8*N'
git-svn-id: branches/tg74/avx512-0037785@48927 -
This commit is contained in:
parent
ad753c0bbd
commit
b4a002e3e7
@ -3776,14 +3776,29 @@ var
|
|||||||
Add(format('%20s%6s', [' pop', sReg]));
|
Add(format('%20s%6s', [' pop', sReg]));
|
||||||
|
|
||||||
case aComparemode of
|
case aComparemode of
|
||||||
cmKORTESTNC: begin
|
//cmKORTESTNC: begin
|
||||||
Add(format('%20s%6s, %s', ['ktestb', 'K2', 'K1']));
|
// Add(format('%20s%6s, %s', ['ktestb', 'K2', 'K1']));
|
||||||
Add(format('%20s %6s', [' jnc', '@@CHECKRESULT']));
|
// Add(format('%20s %6s', [' jnc', '@@CHECKRESULT']));
|
||||||
end;
|
// end;
|
||||||
cmXORTestNZ: begin
|
//cmXORTestNZ: begin
|
||||||
Add(format('%20s%6s, %s', ['kortestq', 'K2', 'K2']));
|
// Add(format('%20s%6s, %s', ['kortestq', 'K2', 'K2']));
|
||||||
Add(format('%20s %6s', [' jnz', '@@CHECKRESULT']));
|
// Add(format('%20s %6s', [' jnz', '@@CHECKRESULT']));
|
||||||
end;
|
// end;
|
||||||
|
cmKORTESTNC: begin
|
||||||
|
Add(format('%20s%6s, %s', ['ktestb', 'K2', 'K1']));
|
||||||
|
Add(format('%20s%6s, %s', [' kmovq', 'R10', 'K6']));
|
||||||
|
Add(format('%20s%6s, @@%d[RIP]', ['cmovc', 'R10', aAsmCounter]));
|
||||||
|
Add(format('%20s %6s', [' jmp', 'R10']));
|
||||||
|
Add(format(' @@%d%s', [aAsmCounter, ':']));
|
||||||
|
end;
|
||||||
|
cmXORTestNZ: begin
|
||||||
|
Add(format('%20s%6s, %s', ['kortestq', 'K2', 'K2']));
|
||||||
|
Add(format('%20s%6s, %s', [' kmovq', 'R10', 'K6']));
|
||||||
|
Add(format('%20s%6s, @@%d[RIP]', ['cmovz', 'R10', aAsmCounter]));
|
||||||
|
Add(format('%20s %6s', [' jmp', 'R10']));
|
||||||
|
Add(format(' @@%d%s', [aAsmCounter, ':']));
|
||||||
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
result := Text;
|
result := Text;
|
||||||
|
@ -3734,11 +3734,17 @@ begin
|
|||||||
|
|
||||||
if aX64 then
|
if aX64 then
|
||||||
begin
|
begin
|
||||||
|
slHeader.Add(' lea rax, @@CHECKRESULT');
|
||||||
|
slHeader.Add(' kmovq k6, rax');
|
||||||
|
|
||||||
slHeader.Add(' lea rax, DataBlock');
|
slHeader.Add(' lea rax, DataBlock');
|
||||||
slHeader.Add(' push rax');
|
slHeader.Add(' push rax');
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
|
slHeader.Add(' lea eax, @@CHECKRESULT');
|
||||||
|
slHeader.Add(' kmovd k6, eax');
|
||||||
|
|
||||||
slHeader.Add(' lea eax, DataBlock');
|
slHeader.Add(' lea eax, DataBlock');
|
||||||
slHeader.Add(' push eax');
|
slHeader.Add(' push eax');
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user