diff options
author | tg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2021-01-21 04:57:47 +0000 |
---|---|---|
committer | tg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2021-01-21 04:57:47 +0000 |
commit | bd6cc4fade80b15967ddfce2b21d2586af16fc6a (patch) | |
tree | a35e6d5138ff1d5d760a366afa9eedda116dee19 | |
parent | 4c4c94cce0a0fd78071bb642da0597c4dbcad178 (diff) | |
download | fpc-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.pas | 46 |
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; |