Browse Source

working on new testmethods (memref-operands)

git-svn-id: branches/tg74/avx512-0037785@47600 -
tg74 4 years ago
parent
commit
07a9767b63
2 changed files with 13 additions and 6 deletions
  1. 3 4
      tests/utils/avx/asmtestgenerator.pas
  2. 10 2
      tests/utils/avx/avxopcodes.pas

+ 3 - 4
tests/utils/avx/asmtestgenerator.pas

@@ -94,7 +94,7 @@ type
     destructor Destroy; override;
     destructor Destroy; override;
 
 
     class procedure CalcTestData(aX64, aAVX512, aSAE: boolean; const aInst, aOp1, aOp2, aOp3, aOp4: String; aSL: TStringList);
     class procedure CalcTestData(aX64, aAVX512, aSAE: boolean; const aInst, aOp1, aOp2, aOp3, aOp4: String; aSL: TStringList);
-    class procedure CalcTestDataMREF(aX64, aAVX512, aSAE: boolean; const aInst, aOp1, aOp2, aOp3, aOp4: String; aSL: TStringList);
+    class procedure CalcTestDataMREF(aX64, aAVX512, aSAE: boolean; const aInst, aOp1, aOp2, aOp3, aOp4: String; aSL: TStringList; var aLocalVarDataTyp: string);
 
 
     class procedure CalcTestInstFile;
     class procedure CalcTestInstFile;
 
 
@@ -2943,9 +2943,8 @@ begin
 end;
 end;
 
 
 class procedure TAsmTestGenerator.CalcTestDataMREF(aX64, aAVX512, aSAE: boolean; const aInst, aOp1, aOp2, aOp3,
 class procedure TAsmTestGenerator.CalcTestDataMREF(aX64, aAVX512, aSAE: boolean; const aInst, aOp1, aOp2, aOp3,
-  aOp4: String;  aSL: TStringList);
+  aOp4: String;  aSL: TStringList; var aLocalVarDataTyp: string);
 var
 var
-  sDataTyp: string;	
   sl: TStringList;
   sl: TStringList;
 begin
 begin
   with TAsmTestGenerator.Create do
   with TAsmTestGenerator.Create do
@@ -2954,7 +2953,7 @@ begin
     FAVX512 := aAVX512;
     FAVX512 := aAVX512;
     FSAE    := aSAE;
     FSAE    := aSAE;
 
 
-    sl := InternalCalcTestDataMREF(aInst, aOp1, aOp2, aOp3, aOp4, sDataTyp);
+    sl := InternalCalcTestDataMREF(aInst, aOp1, aOp2, aOp3, aOp4, aLocalVarDataTyp);
     try
     try
       aSL.AddStrings(sl);
       aSL.AddStrings(sl);
     finally
     finally

+ 10 - 2
tests/utils/avx/avxopcodes.pas

@@ -3260,6 +3260,7 @@ var
   i: integer;
   i: integer;
   sData: string;
   sData: string;
   sDestFile: string;
   sDestFile: string;
+  sLocalVarDataTyp: string;
   sl: TStringList;
   sl: TStringList;
   slAsm: TStringList;
   slAsm: TStringList;
   LastOpCode: String;
   LastOpCode: String;
@@ -3316,8 +3317,13 @@ begin
 	    begin
 	    begin
               if aMREF then
               if aMREF then
 	      begin	      
 	      begin	      
- 	        TAsmTestGenerator.CalcTestDataMREF(aX64, aAVX512 and (sl[3] = '1'), aSAE, sl[0], sl[4], sl[5], sl[6], sl[7], slAsm);
+ 	        TAsmTestGenerator.CalcTestDataMREF(aX64, aAVX512 and (sl[3] = '1'), aSAE, sl[0], sl[4], sl[5], sl[6], sl[7], slAsm, sLocalVarDataTyp);
 		sDestFile := 'MREF_' + sDestFile;
 		sDestFile := 'MREF_' + sDestFile;
+                
+		if trim(sLocalVarDataTyp) = '' then
+		 sLocalVarDataTyp := 'byte';
+ 
+                aHeaderList.Text :=  StringReplace(aHeaderList.Text, '$$$LOCALVARDATATYP$$$', sLocalVarDataTyp, [rfReplaceAll]);
 	      end
 	      end
    	      else TAsmTestGenerator.CalcTestData(aX64, aAVX512 and (sl[3] = '1'), aSAE, sl[0], sl[4], sl[5], sl[6], sl[7], slAsm);
    	      else TAsmTestGenerator.CalcTestData(aX64, aAVX512 and (sl[3] = '1'), aSAE, sl[0], sl[4], sl[5], sl[6], sl[7], slAsm);
 	    end;	    
 	    end;	    
@@ -3383,7 +3389,9 @@ begin
 
 
                   slHeader.Add('Program $$$OPCODE$$$;');
                   slHeader.Add('Program $$$OPCODE$$$;');
                   slHeader.Add('{$asmmode intel}');
                   slHeader.Add('{$asmmode intel}');
-                  slHeader.Add(' procedure 1;');
+                  slHeader.Add(' procedure dummyproc;');
+		  slHeader.Add(' var');
+		  slHeader.Add('    v1: $$$LOCALVARDATATYP$$$;');
                   slHeader.Add(' begin');
                   slHeader.Add(' begin');
                   slHeader.Add('   asm');
                   slHeader.Add('   asm');
                   for i := 1 to 10 do
                   for i := 1 to 10 do