summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-02-04 04:53:13 +0000
committertg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-02-04 04:53:13 +0000
commit611ca8ad56d84d4c163bb8b38c43d683fec3e476 (patch)
tree6a13e3fb6a1a7efbb8cf8dee2a4cd27ec2081fe7
parentd389c6c40ab18773869574d51719e4f1497716f1 (diff)
downloadfpc-611ca8ad56d84d4c163bb8b38c43d683fec3e476.tar.gz
avxtestgenerator: working on new tests for compressed disp8*N
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/tg74@48508 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--avx512-0037785/tests/utils/avx/avxopcodes.pas20
1 files changed, 15 insertions, 5 deletions
diff --git a/avx512-0037785/tests/utils/avx/avxopcodes.pas b/avx512-0037785/tests/utils/avx/avxopcodes.pas
index 7bc1adf155..02273b9bcd 100644
--- a/avx512-0037785/tests/utils/avx/avxopcodes.pas
+++ b/avx512-0037785/tests/utils/avx/avxopcodes.pas
@@ -3676,6 +3676,8 @@ begin
slHeader.Add('Program $$$OPCODE$$$;');
slHeader.Add('{$asmmode intel}');
+ slHeader.Add('uses sysutils;');
+
slHeader.Add('const');
slHeader.Add(' cDataBlockByte: Array[0..255] of byte = ( $00, $01, $02, $03, $04, $05, $06, $07, $08, $09, $0A, $0B, $0C, $0D, $0E, $0F,');
slHeader.Add(' $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $1A, $1B, $1C, $1D, $1E, $1F,');
@@ -3694,9 +3696,13 @@ begin
slHeader.Add(' $E0, $E1, $E2, $E3, $E4, $E5, $E6, $E7, $E8, $E9, $EA, $EB, $EC, $ED, $EE, $EF,');
slHeader.Add(' $F0, $F1, $F2, $F3, $F4, $F5, $F6, $F7, $F8, $F9, $FA, $FB, $FC, $FD, $FE, $FF);');
slHeader.Add('var');
- slHeader.Add(' DataBlock: Array[0..$FFFF] of byte;');
- slheader.Add(' i: integer;');
+ slHeader.Add(' DataBlock: Array[0..$3FFF] of dword;');
+ slHeader.Add(' i: integer;');
+ slHeader.Add('procedure writelnK7(aVal: dword);');
+ slHeader.Add('begin');
+ slHeader.Add(' writeln(''K7: '' + ' + 'inttostr(aVal));');
+ slHeader.Add('end;');
slHeader.Add('begin');
slHeader.Add(' for i := 0 to high(DataBlock) do');
@@ -3726,15 +3732,19 @@ begin
for i := 1 to 10 do
slHeader.Add('NOP');
- slFooter.Add(' xor eax, eax');
+
+ for i := 1 to 10 do
+ slFooter.Add('NOP');
+
slFooter.Add(' @@CHECKRESULT: ');
+ slFooter.Add(' kmovd eax, k7');
+ slFooter.Add(' call writelnK7');
+ slFooter.Add(' @@END: ');
if aX64 then slFooter.Add(' pop rax')
else slFooter.Add(' pop eax');
- for i := 1 to 10 do
- slFooter.Add('NOP');
slFooter.Add(' end;');
slFooter.Add('end.');