mirror of
https://github.com/herumi/xbyak
synced 2024-11-21 16:09:11 -07:00
add test of CMPccXADD
This commit is contained in:
parent
c9347907d4
commit
445c0dcec1
1 changed files with 84 additions and 0 deletions
|
@ -2056,3 +2056,87 @@ CYBOZU_TEST_AUTO(rao_int)
|
|||
CYBOZU_TEST_EQUAL(c.getSize(), n);
|
||||
CYBOZU_TEST_EQUAL_ARRAY(c.getCode(), tbl, n);
|
||||
}
|
||||
|
||||
#ifdef XBYAK64
|
||||
CYBOZU_TEST_AUTO(CMPccXADD)
|
||||
{
|
||||
struct Code : Xbyak::CodeGenerator {
|
||||
Code()
|
||||
{
|
||||
// 32bit reg
|
||||
cmpbexadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmpbxadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmplexadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmplxadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmpnbexadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmpnbxadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmpnlexadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmpnlxadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmpnoxadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmpnpxadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmpnsxadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmpnzxadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmpoxadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmppxadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmpsxadd(ptr[rax+r10*4], ecx, edx);
|
||||
cmpzxadd(ptr[rax+r10*4], ecx, edx);
|
||||
// 64bit reg
|
||||
cmpbexadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmpbxadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmplexadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmplxadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmpnbexadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmpnbxadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmpnlexadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmpnlxadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmpnoxadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmpnpxadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmpnsxadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmpnzxadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmpoxadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmppxadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmpsxadd(ptr[rax+r10*4], rcx, rdx);
|
||||
cmpzxadd(ptr[rax+r10*4], rcx, rdx);
|
||||
}
|
||||
} c;
|
||||
const uint8_t tbl[] = {
|
||||
// 32bit reg
|
||||
0xc4, 0xa2, 0x69, 0xe6, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xe2, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xee, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xec, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xe7, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xe3, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xef, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xed, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xe1, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xeb, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xe9, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xe5, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xe0, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xea, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xe8, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0x69, 0xe4, 0x0c, 0x90,
|
||||
// 64bit reg
|
||||
0xc4, 0xa2, 0xe9, 0xe6, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xe2, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xee, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xec, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xe7, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xe3, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xef, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xed, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xe1, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xeb, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xe9, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xe5, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xe0, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xea, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xe8, 0x0c, 0x90,
|
||||
0xc4, 0xa2, 0xe9, 0xe4, 0x0c, 0x90,
|
||||
};
|
||||
const size_t n = sizeof(tbl) / sizeof(tbl[0]);
|
||||
CYBOZU_TEST_EQUAL(c.getSize(), n);
|
||||
CYBOZU_TEST_EQUAL_ARRAY(c.getCode(), tbl, n);
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue