diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2012-04-24 16:27:35 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-25 14:58:36 +0200 |
commit | e75b0e8c72008f800704828cd4f1eae97b523848 (patch) | |
tree | ddbdf8fa815d083a18b258c9761161827cc81fc0 /src/corelib/tools | |
parent | dc6d1c6c3f877ea7f3fd0fde35a5916964093d5c (diff) |
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>
Diffstat (limited to 'src/corelib/tools')
-rw-r--r-- | src/corelib/tools/qsimd.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp index 6a790a432d..5d95d7c232 100644 --- a/src/corelib/tools/qsimd.cpp +++ b/src/corelib/tools/qsimd.cpp @@ -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 |