From e75b0e8c72008f800704828cd4f1eae97b523848 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 24 Apr 2012 16:27:35 +0200 Subject: [PATCH] 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 --- src/corelib/tools/qsimd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp index 6a790a4..5d95d7c 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 -- 2.7.4