/ externals / xbyak / test / bad_address.cpp
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  }