From: Eric Biggers Date: Sat, 22 Aug 2015 16:47:15 +0000 (-0500) Subject: x86_cpu_features.c: xgetbv fix for old binutils X-Git-Tag: v1.8.2~2 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=56c8b5eaacef8a5563261b9034a8a011480bba6e;hp=719a063c87e3abab99b0fb53ebc80223fbf33123;ds=sidebyside x86_cpu_features.c: xgetbv fix for old binutils --- diff --git a/src/x86_cpu_features.c b/src/x86_cpu_features.c index aab200ff..5e434f9f 100644 --- a/src/x86_cpu_features.c +++ b/src/x86_cpu_features.c @@ -47,7 +47,9 @@ read_xcr(u32 index) { u32 edx, eax; - __asm__ ("xgetbv" : "=d" (edx), "=a" (eax) : "c" (index)); + /* Execute the "xgetbv" instruction. Old versions of binutils do not + * recognize this instruction, so list the raw bytes instead. */ + __asm__ (".byte 0x0f, 0x01, 0xd0" : "=d" (edx), "=a" (eax) : "c" (index)); return ((u64)edx << 32) | eax; }