mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-01-06 14:38:17 +01:00
Merge commit '4ed09fda06' as 'externals/xbyak'
This commit is contained in:
commit
d28498685f
79 changed files with 22734 additions and 0 deletions
45
externals/xbyak/test/bad_address.cpp
vendored
Normal file
45
externals/xbyak/test/bad_address.cpp
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
#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(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;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue