summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-01-21 04:57:47 +0000
committertg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-01-21 04:57:47 +0000
commitbd6cc4fade80b15967ddfce2b21d2586af16fc6a (patch)
treea35e6d5138ff1d5d760a366afa9eedda116dee19
parent4c4c94cce0a0fd78071bb642da0597c4dbcad178 (diff)
downloadfpc-bd6cc4fade80b15967ddfce2b21d2586af16fc6a.tar.gz
avxtestgenerator: working on new testmethods avx512-memref-operands - 'compressed disp8*N'
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/tg74@48261 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--avx512-0037785/tests/utils/avx/asmtestgenerator.pas46
1 files changed, 46 insertions, 0 deletions
diff --git a/avx512-0037785/tests/utils/avx/asmtestgenerator.pas b/avx512-0037785/tests/utils/avx/asmtestgenerator.pas
index b35b622690..e780170d8d 100644
--- a/avx512-0037785/tests/utils/avx/asmtestgenerator.pas
+++ b/avx512-0037785/tests/utils/avx/asmtestgenerator.pas
@@ -3601,6 +3601,7 @@ var
procedure SplitOperands(const aOperand1, aOperand2, aOperand3, aOperand4: string; var aRegCombi0, aRegCombi1, aRegCombi2, aRegCombi3, aRegCombi4: string);
var
+ i: integer;
s1: string;
s2: string;
s3: string;
@@ -3630,6 +3631,51 @@ var
if iCnt3 > iMaxCnt then iMaxCnt := iCnt3;
if iCnt4 > iMaxCnt then iMaxCnt := iCnt4;
+
+ if (aOperand1 <> '') and (aRegCombi0 <> '') then
+ begin
+ aRegCombi0 := aRegCombi0 + ',';
+ aRegCombi1 := aRegCombi1 + ',';
+ aRegCombi2 := aRegCombi2 + ',';
+ aRegCombi3 := aRegCombi3 + ',';
+ aRegCombi4 := aRegCombi4 + ',';
+ end;
+
+
+ Text := StringReplace(trim(aOperand1), '|', #13#10, [rfReplaceAll]);
+ if Count = iMaxCnt then
+ begin
+ for i := 0 to iMaxCnt - 1 do
+ begin
+ case i of
+ 0: aRegCombi0 := aRegCombi0 + ',' + Strings[i];
+ 1: aRegCombi1 := aRegCombi1 + ',' + Strings[i];
+ 2: aRegCombi2 := aRegCombi2 + ',' + Strings[i];
+ 3: aRegCombi3 := aRegCombi3 + ',' + Strings[i];
+ 4: aRegCombi4 := aRegCombi4 + ',' + Strings[i];
+ end;
+ end;
+ end
+ else
+ begin
+ if Count = 1 then
+ begin
+ for i := 0 to iMaxCnt - 1 do
+ begin
+ case i of
+ 0: aRegCombi0 := aRegCombi0 + ',' + Strings[0];
+ 1: aRegCombi1 := aRegCombi1 + ',' + Strings[0];
+ 2: aRegCombi2 := aRegCombi2 + ',' + Strings[0];
+ 3: aRegCombi3 := aRegCombi3 + ',' + Strings[0];
+ 4: aRegCombi4 := aRegCombi4 + ',' + Strings[0];
+ end;
+ end;
+ end
+ else
+ begin
+ // TODO log
+ end;
+ end;
finally
Free;
end;