Browse Source

avxtestgenerator: working on new tests for compressed disp8*N

git-svn-id: branches/tg74/avx512-0037785@48508 -
tg74 4 years ago
parent
commit
e309c47ed6
1 changed files with 15 additions and 5 deletions
  1. 15 5
      tests/utils/avx/avxopcodes.pas

+ 15 - 5
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.');