Replace the x86 XGETBV instruction with its opcode bytes
This is a new instruction, present on the SandyBridge architecture and
later. Some older assemblers do not support it and produce:
{standard input}:225:no such instruction: `xgetbv'
The use of this instruction is protected by a CPUID check (function 1,
ECX bit 27), so we only run it in processors that do support it.
Change-Id: Ife7500c0deaab9539074835a4511e8c19602608e
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
bb10
parent
dc6d1c6c3f
commit
e75b0e8c72
|
|
@ -244,7 +244,7 @@ static void xgetbv(int in, uint &eax, uint &edx)
|
|||
eax = result;
|
||||
edx = result >> 32;
|
||||
#elif defined(Q_CC_GNU)
|
||||
asm ("xgetbv"
|
||||
asm (".byte 0x0F, 0x01, 0xD0" // xgetbv instruction
|
||||
: "=a" (eax), "=d" (edx)
|
||||
: "c" (in));
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue