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