dynarmic/externals/xbyak/test/bad_address.cpp
MerryMage 1b3b98c3f7 externals: Update xbyak to v5.601
Merge commit 'dbb1f8cf373ab2110548985332a9ebf7e71346a9' into HEAD
2020-04-22 20:53:27 +01:00

47 lines
1.1 KiB
C++

#include <xbyak/xbyak.h>
#define TEST_EXCEPTION(state) \
{ \
num++; \
bool exception = false; \
try { \
state; \
} catch (...) { \
exception = true; \
} \
if (!exception) { \
printf("exception should arise for %s\n", #state); \
err++; \
} \
}
struct Code : Xbyak::CodeGenerator {
Code()
{
int err = 0;
int num = 0;
TEST_EXCEPTION(mov(eax, ptr [esp + esp]));
TEST_EXCEPTION(mov(eax, ptr [ax])); // not support
TEST_EXCEPTION(mov(eax, ptr [esp * 4]));
TEST_EXCEPTION(mov(eax, ptr [eax * 16]));
TEST_EXCEPTION(mov(eax, ptr [eax + eax + eax]));
TEST_EXCEPTION(mov(eax, ptr [eax * 2 + ecx * 4]));
TEST_EXCEPTION(mov(eax, ptr [eax * 2 + ecx * 4]));
TEST_EXCEPTION(mov(eax, ptr [xmm0]));
TEST_EXCEPTION(fld(dword [xmm0]));
TEST_EXCEPTION(vgatherdpd(xmm0, ptr [eax * 2], ymm3));
TEST_EXCEPTION(vgatherdpd(xmm0, ptr [xmm0 + xmm1], ymm3));
#ifdef XBYAK64
TEST_EXCEPTION(mov(eax, ptr [rax + eax]));
TEST_EXCEPTION(mov(eax, ptr [xmm0 + ymm0]));
#endif
if (!err) {
printf("bad_address test %d ok\n", num);
}
}
};
int main()
{
Code c;
}