]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
Changes in shared code that don't affect open-vm-tools functionality.
authorVMware, Inc <>
Wed, 20 Jul 2011 20:32:48 +0000 (13:32 -0700)
committerMarcelo Vanzin <mvanzin@vmware.com>
Wed, 20 Jul 2011 20:32:48 +0000 (13:32 -0700)
Signed-off-by: Marcelo Vanzin <mvanzin@vmware.com>
open-vm-tools/lib/include/vm_basic_asm.h
open-vm-tools/lib/include/x86cpuid.h

index 76547c065195cee923b85f6d5e67124b6b88aae6..8304904fe908134a7cef60fa7226dc7e8a2108a9 100644 (file)
@@ -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 */
 
 /*
index 2a897e1221525a3f1e1f78eeb759f92eb0328fac..082cbe9059b3ccfa86c11f92c4e8cca7fc1cfb4c 100644 (file)
@@ -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) \