From: VMware, Inc <> Date: Wed, 20 Jul 2011 20:32:48 +0000 (-0700) Subject: Changes in shared code that don't affect open-vm-tools functionality. X-Git-Tag: 2011.07.19-450511~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b977ace2849a5bb44467d234d6b311770a079fbb;p=thirdparty%2Fopen-vm-tools.git Changes in shared code that don't affect open-vm-tools functionality. Signed-off-by: Marcelo Vanzin --- diff --git a/open-vm-tools/lib/include/vm_basic_asm.h b/open-vm-tools/lib/include/vm_basic_asm.h index 76547c065..8304904fe 100644 --- a/open-vm-tools/lib/include/vm_basic_asm.h +++ b/open-vm-tools/lib/include/vm_basic_asm.h @@ -1028,6 +1028,42 @@ ClearBit64(uint64 *var, uint64 index) _bittestandreset64((__int64 *)var, index); #endif } + +static INLINE Bool +TestBit32(uint32 *var, uint32 index) +{ +#ifdef __GNUC__ + Bool bit; + __asm__ ( + "bt %[index], %[var] \n" + "setc %[bit]" + : [bit] "=rm" (bit) + : [index] "rI" (index), [var] "r" (*var) + : "cc" + ); + return bit; +#elif defined _MSC_VER + return _bittest((long *)var, index); +#endif +} + +static INLINE Bool +TestBit64(uint64 *var, uint64 index) +{ +#ifdef __GNUC__ + Bool bit; + __asm__ ( + "bt %[index], %[var] \n" + "setc %[bit]" + : [bit] "=rm" (bit) + : [index] "rJ" (index), [var] "r" (*var) + : "cc" + ); + return bit; +#elif defined _MSC_VER + return _bittest64((__int64 *)var, index); +#endif +} #endif /* VM_X86_64 */ /* diff --git a/open-vm-tools/lib/include/x86cpuid.h b/open-vm-tools/lib/include/x86cpuid.h index 2a897e122..082cbe905 100644 --- a/open-vm-tools/lib/include/x86cpuid.h +++ b/open-vm-tools/lib/include/x86cpuid.h @@ -313,7 +313,7 @@ FLAG( 1, 0, ECX, INTEL, 17, 1, PCID, YES, FALSE) \ FLAG( 1, 0, ECX, INTEL, 18, 1, DCA, NO, FALSE) \ FLAG( 1, 0, ECX, COMMON, 19, 1, SSE41, YES, TRUE) \ FLAG( 1, 0, ECX, COMMON, 20, 1, SSE42, YES, TRUE) \ -FLAG( 1, 0, ECX, INTEL, 21, 1, x2APIC, NO, FALSE) \ +FLAG( 1, 0, ECX, INTEL, 21, 1, x2APIC, ANY, FALSE) \ FLAG( 1, 0, ECX, INTEL, 22, 1, MOVBE, YES, TRUE) \ FLAG( 1, 0, ECX, COMMON, 23, 1, POPCNT, YES, TRUE) \ FLAG( 1, 0, ECX, COMMON, 24, 1, TSC_DEADLINE, NO, FALSE) \