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 }
devnexen commented
ah right ... rosetta does not support AVX :-) will fire up my macOs