Ver Fonte

working on new testmethods avx512-memref-operands - 'compressed disp8*N'

git-svn-id: branches/tg74/avx512-0037785@48927 -
tg74 há 4 anos atrás
pai
commit
24f33871c0
2 ficheiros alterados com 29 adições e 8 exclusões
  1. 23 8
      tests/utils/avx/asmtestgenerator.pas
  2. 6 0
      tests/utils/avx/avxopcodes.pas

+ 23 - 8
tests/utils/avx/asmtestgenerator.pas

@@ -3776,14 +3776,29 @@ var
       Add(format('%20s%6s',               ['     pop', sReg]));
 
       case aComparemode of
-        cmKORTESTNC: begin
-                       Add(format('%20s%6s, %s',           ['ktestb', 'K2', 'K1']));
-                       Add(format('%20s  %6s',             ['     jnc', '@@CHECKRESULT']));
-                     end;
-        cmXORTestNZ: begin
-                       Add(format('%20s%6s, %s',           ['kortestq', 'K2', 'K2']));
-                       Add(format('%20s  %6s',             ['     jnz', '@@CHECKRESULT']));
-                     end;
+        //cmKORTESTNC: begin
+        //               Add(format('%20s%6s, %s',           ['ktestb', 'K2', 'K1']));
+        //               Add(format('%20s  %6s',             ['     jnc', '@@CHECKRESULT']));
+        //             end;
+        //cmXORTestNZ: begin
+        //               Add(format('%20s%6s, %s',           ['kortestq', 'K2', 'K2']));
+        //               Add(format('%20s  %6s',             ['     jnz', '@@CHECKRESULT']));
+        //             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;
 
       result := Text;

+ 6 - 0
tests/utils/avx/avxopcodes.pas

@@ -3734,11 +3734,17 @@ begin
 
                   if aX64 then
                   begin
+                    slHeader.Add('      lea       rax, @@CHECKRESULT');
+                    slHeader.Add('      kmovq      k6, rax');
+
                     slHeader.Add('      lea       rax, DataBlock');
                     slHeader.Add('      push      rax');
                   end
                   else
                   begin
+                    slHeader.Add('      lea       eax, @@CHECKRESULT');
+                    slHeader.Add('      kmovd      k6, eax');
+
                     slHeader.Add('      lea       eax, DataBlock');
                     slHeader.Add('      push      eax');
                   end;