bad_address.cpp
1 #include <xbyak/xbyak.h> 2 #include <cybozu/test.hpp> 3 4 struct Code : Xbyak::CodeGenerator { 5 Code() 6 { 7 CYBOZU_TEST_EXCEPTION(mov(eax, ptr [esp + esp]), std::exception); 8 CYBOZU_TEST_EXCEPTION(mov(eax, ptr [ax]), std::exception); // not support 9 CYBOZU_TEST_EXCEPTION(mov(eax, ptr [esp * 4]), std::exception); 10 CYBOZU_TEST_EXCEPTION(mov(eax, ptr [eax * 16]), std::exception); 11 CYBOZU_TEST_EXCEPTION(mov(eax, ptr [eax + eax + eax]), std::exception); 12 CYBOZU_TEST_EXCEPTION(mov(eax, ptr [eax * 2 + ecx * 4]), std::exception); 13 CYBOZU_TEST_EXCEPTION(mov(eax, ptr [eax * 2 + ecx * 4]), std::exception); 14 CYBOZU_TEST_EXCEPTION(mov(eax, ptr [xmm0]), std::exception); 15 CYBOZU_TEST_EXCEPTION(fld(dword [xmm0]), std::exception); 16 CYBOZU_TEST_EXCEPTION(vgatherdpd(xmm0, ptr [eax * 2], ymm3), std::exception); 17 CYBOZU_TEST_EXCEPTION(vgatherdpd(xmm0, ptr [xmm0 + xmm1], ymm3), std::exception); 18 #ifdef XBYAK64 19 CYBOZU_TEST_EXCEPTION(mov(eax, ptr [rax + eax]), std::exception); 20 CYBOZU_TEST_EXCEPTION(mov(eax, ptr [xmm0 + ymm0]), std::exception); 21 #endif 22 } 23 }; 24 25 CYBOZU_TEST_AUTO(exception) 26 { 27 Code c; 28 }