nm_frame.cpp
1 #include <stdio.h> 2 #define XBYAK_ENABLE_OMITTED_OPERAND 3 #include "xbyak/xbyak.h" 4 #define CYBOZU_TEST_DISABLE_AUTO_RUN 5 #include "cybozu/test.hpp" 6 7 using namespace Xbyak; 8 9 #ifdef _MSC_VER 10 #pragma warning(disable : 4245) 11 #pragma warning(disable : 4312) 12 #endif 13 class Sample : public CodeGenerator { 14 void operator=(const Sample&); 15 public: 16 #include "nm.cpp" 17 }; 18 19 20 class ErrorSample : public CodeGenerator { 21 void operator=(const ErrorSample&); 22 public: 23 void gen() 24 { 25 #ifndef XBYAK_NO_EXCEPTION 26 CYBOZU_TEST_EXCEPTION(mov(ptr[eax],1), std::exception); 27 CYBOZU_TEST_EXCEPTION(test(ptr[eax],1), std::exception); 28 CYBOZU_TEST_EXCEPTION(adc(ptr[eax],1), std::exception); 29 CYBOZU_TEST_EXCEPTION(setz(eax), std::exception); 30 #endif 31 } 32 }; 33 34 int main() 35 { 36 // the size of Operand exceeds 32 bit. 37 CYBOZU_TEST_EQUAL(sizeof(Xbyak::Operand), 8u); 38 Sample s; 39 s.gen(); 40 ErrorSample es; 41 es.gen(); 42 }