diff options
author | tg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2021-01-20 16:30:38 +0000 |
---|---|---|
committer | tg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2021-01-20 16:30:38 +0000 |
commit | 4c4c94cce0a0fd78071bb642da0597c4dbcad178 (patch) | |
tree | 8ef549639d38ee4d7bc57431a803bfb86ad5d6af | |
parent | 80f09cee1a99c34f40d07acb64d57048643ca89b (diff) | |
download | fpc-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.pas | 51 |
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; |