summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-01-20 16:30:38 +0000
committertg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-01-20 16:30:38 +0000
commit4c4c94cce0a0fd78071bb642da0597c4dbcad178 (patch)
tree8ef549639d38ee4d7bc57431a803bfb86ad5d6af
parent80f09cee1a99c34f40d07acb64d57048643ca89b (diff)
downloadfpc-4c4c94cce0a0fd78071bb642da0597c4dbcad178.tar.gz
working on new testmethods avx512-memref-operands - 'compressed disp8*N'
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/tg74@48230 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--avx512-0037785/tests/utils/avx/asmtestgenerator.pas51
1 files changed, 46 insertions, 5 deletions
diff --git a/avx512-0037785/tests/utils/avx/asmtestgenerator.pas b/avx512-0037785/tests/utils/avx/asmtestgenerator.pas
index 2789a550f9..b35b622690 100644
--- a/avx512-0037785/tests/utils/avx/asmtestgenerator.pas
+++ b/avx512-0037785/tests/utils/avx/asmtestgenerator.pas
@@ -3599,6 +3599,41 @@ var
if result = 'YMMRM256' then result := 'YMMRM';
end;
+ procedure SplitOperands(const aOperand1, aOperand2, aOperand3, aOperand4: string; var aRegCombi0, aRegCombi1, aRegCombi2, aRegCombi3, aRegCombi4: string);
+ var
+ s1: string;
+ s2: string;
+ s3: string;
+ s4: string;
+ iCnt1: integer;
+ iCnt2: integer;
+ iCnt3: integer;
+ iCnt4: integer;
+ iMaxCnt: integer;
+ begin
+ with TStringList.Create do
+ try
+ Text := StringReplace(trim(aOperand1), '|', #13#10, [rfReplaceAll]);
+ iCnt1 := Count;
+
+ Text := StringReplace(trim(aOperand2), '|', #13#10, [rfReplaceAll]);
+ iCnt2 := Count;
+
+ Text := StringReplace(trim(aOperand3), '|', #13#10, [rfReplaceAll]);
+ iCnt3 := Count;
+
+ Text := StringReplace(trim(aOperand4), '|', #13#10, [rfReplaceAll]);
+ iCnt4 := Count;
+
+ iMaxCnt := iCnt1;
+ if iCnt2 > iMaxCnt then iMaxCnt := iCnt2;
+ if iCnt3 > iMaxCnt then iMaxCnt := iCnt3;
+ if iCnt4 > iMaxCnt then iMaxCnt := iCnt4;
+
+ finally
+ Free;
+ end;
+ end;
begin
result := TStringList.Create;
@@ -4506,11 +4541,17 @@ begin
while slRegCombi.Count < 5 do
slRegCombi.Add('');
- if OItem1.OpActive then
- begin
-
-
- end;
+ sRegCombi0 := '';
+ sRegCombi1 := '';
+ sRegCombi2 := '';
+ sRegCombi3 := '';
+ sRegCombi4 := '';
+
+ //if OItem1.OpActive then
+ //begin
+ // SplitOperand(OItem1.Values[il_Op1], sRegCombi0,sRegCombi1,sRegCombi2,sRegCombi3,sRegCombi4);
+ //
+ //end;
finally
FreeAndNil(slRegCombi);
end;