include/winternl.h: Fix CPU_FEATURE_3DNOW bit mask

James Eder jimportal at gmail.com
Thu Sep 6 10:23:13 CDT 2012


This was verified with XP running in qemu-kvm on a machine with an AMD
processor.

I created a test program which calls NtQuerySystemInformation to get a
SYSTEM_CPU_INFORMATION structure and then print the FeatureSet member.
The VM was first launched with "qemu-kvm -cpu host ..." to pass all
available CPUID features from the host to the guest.  Then, the VM was
launched with "qemu-kvm -cpu host,-3dnow ..." to pass all features but
disable 3dnow. Comparing the results from the two test program runs, only
one bit changed.  From this information it was possible to derive the
correct bit mask for the CPU_FEATURE_3DNOW preprocessor macro.
---
 include/winternl.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/include/winternl.h b/include/winternl.h
index bcf18f5..79078f0 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -1146,8 +1146,7 @@ typedef struct _SYSTEM_CPU_INFORMATION {
 #define CPU_FEATURE_FXSR   0x00000800   /* FXSAVE and FXSTORE instructions */
 #define CPU_FEATURE_SEP    0x00001000   /* SYSENTER and SYSEXIT instructions */
 #define CPU_FEATURE_SSE    0x00002000   /* SSE extensions (ext. MMX) */
-#define CPU_FEATURE_3DNOW  0x00008000   /* 3DNOW instructions available 
-                                           (FIXME: needs to be confirmed) */
+#define CPU_FEATURE_3DNOW  0x00004000   /* 3DNOW instructions available */
 #define CPU_FEATURE_SSE2   0x00010000   /* SSE2 extensions (XMMI64) */
 #define CPU_FEATURE_DS     0x00020000   /* Debug Store */
 #define CPU_FEATURE_HTT    0x00040000   /* Hyper Threading Technology */
-- 
1.7.12




More information about the wine-patches mailing list