yvt/openspades

xgetbv instruction causes SIGILL on Rosetta 2

yvt opened this issue · 1 comments

yvt commented
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
    frame #0: 0x000000010009963d OpenSpades`spades::CpuID::CpuID() [inlined] spades::xcr0() at CpuID.cpp:36:3 [opt]
   33  			return static_cast<uint32_t>(_xgetbv(0));
   34  	#else
   35  			uint32_t a;
-> 36  			asm volatile("xgetbv" : "=a"(a) : "c"(0) : "%edx");
   37  			return a;
   38  	#endif
   39  		}

ah right ... rosetta does not support AVX :-) will fire up my macOs