#include #define XBYAK_ENABLE_OMITTED_OPERAND #include "xbyak/xbyak.h" #define CYBOZU_TEST_DISABLE_AUTO_RUN #include "cybozu/test.hpp" using namespace Xbyak; #ifdef _MSC_VER #pragma warning(disable : 4245) #pragma warning(disable : 4312) #endif class Sample : public CodeGenerator { void operator=(const Sample&); public: #include "nm.cpp" }; class ErrorSample : public CodeGenerator { void operator=(const ErrorSample&); public: void gen() { #ifndef XBYAK_NO_EXCEPTION CYBOZU_TEST_EXCEPTION(mov(ptr[eax],1), std::exception); CYBOZU_TEST_EXCEPTION(test(ptr[eax],1), std::exception); CYBOZU_TEST_EXCEPTION(adc(ptr[eax],1), std::exception); CYBOZU_TEST_EXCEPTION(setz(eax), std::exception); #endif } }; int main() { // the size of Operand exceeds 32 bit. CYBOZU_TEST_EQUAL(sizeof(Xbyak::Operand), 8u); Sample s; s.gen(); ErrorSample es; es.gen(); }