diff options
author | tg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2021-02-02 16:24:36 +0000 |
---|---|---|
committer | tg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2021-02-02 16:24:36 +0000 |
commit | cc277474e909e3626a72f09aa6918ecefd1388f4 (patch) | |
tree | 56d38eee50df26fc71969eb0670497901978551b | |
parent | 59d229d0d9f46f2e56c792ec344d02591e3615f0 (diff) | |
download | fpc-cc277474e909e3626a72f09aa6918ecefd1388f4.tar.gz |
avxtestgenerator: working on new testmethods avx512-memref-operands - 'compressed disp8*N'
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/tg74@48500 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | avx512-0037785/tests/utils/avx/asmtestgenerator.pas | 24 | ||||
-rw-r--r-- | avx512-0037785/tests/utils/avx/avxopcodes.pas | 5 |
2 files changed, 20 insertions, 9 deletions
diff --git a/avx512-0037785/tests/utils/avx/asmtestgenerator.pas b/avx512-0037785/tests/utils/avx/asmtestgenerator.pas index 84fff5a2dd..37c48e060a 100644 --- a/avx512-0037785/tests/utils/avx/asmtestgenerator.pas +++ b/avx512-0037785/tests/utils/avx/asmtestgenerator.pas @@ -3581,6 +3581,7 @@ var iAsmCounter: integer; sSuffix: string; + sReg: string; sl_Operand: String; sl_Inst : String; sRegCombi: String; @@ -4900,15 +4901,20 @@ begin end; omXXM: begin result.Add(format('%20s%6s,%6s, %s + $00', [aInst, 'XMM1', 'XMM1', OItem3.Values[il_Op3] ])); - result.Add(format('%20s%6s,%6s, %s', ['vpcmpeqq', 'K2', OItem1.Values[il_Op1], 'XMM1'])); - result.Add(format('%20s%6s', [' push', 'EDX'])); - result.Add(format('%20s%6s,%s', [' mov', 'EDX', str(iAsmCounter)])); - result.Add(format('%20s%6s', [' push', 'EDX'])); - result.Add(format('%20s%6s,%6s', [' kmovd', 'EDX', 'K2'])); - result.Add(format('%20s%6s,%6s', [' cmp', 'EDX', '$03'])); - result.Add(format('%20s%6s', [' pop', 'EDX'])); - result.Add(format('%20s%6s', [' jne', '@@CHECKRESULT'])); - result.Add(format('%20s%6s', [' pop', 'EDX'])); + result.Add(format('%20s%6s,%6s, %s', ['vpcmpeqw', 'K2', OItem1.Values[il_Op1], 'XMM1'])); + + case Fx64 of + true: sReg := 'RAX'; + else sReg := 'EAX'; + end; + + result.Add(format('%20s%6s', [' push', sReg])); + result.Add(format('%20s%6s,%s', [' mov', sReg, str(iAsmCounter)])); + result.Add(format('%20s%6s,%s', [' kmovd', 'K7', 'EAX'])); + result.Add(format('%20s%6s', [' pop', sReg])); + + result.Add(format('%20s%6s,%6s', ['kortestb', 'K1', 'K2'])); + result.Add(format('%20s%6s', [' jnc', '@@CHECKRESULT'])); result.Add(''); end; omXXB32, diff --git a/avx512-0037785/tests/utils/avx/avxopcodes.pas b/avx512-0037785/tests/utils/avx/avxopcodes.pas index fd2cca74bc..da4b76801a 100644 --- a/avx512-0037785/tests/utils/avx/avxopcodes.pas +++ b/avx512-0037785/tests/utils/avx/avxopcodes.pas @@ -3722,9 +3722,14 @@ begin slHeader.Add(' push eax'); end; + for i := 1 to 10 do slHeader.Add('NOP'); + slFooter.Add(' xor eax, eax'); + slFooter.Add(' @@CHECKRESULT: '); + + if aX64 then slFooter.Add(' pop rax') else slFooter.Add(' pop eax'); |