summaryrefslogtreecommitdiffstats
path: root/src/mesa/x86/common_x86_asm.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/x86/common_x86_asm.S')
-rw-r--r--src/mesa/x86/common_x86_asm.S15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/mesa/x86/common_x86_asm.S b/src/mesa/x86/common_x86_asm.S
index f877fd57c28..6fe7443c814 100644
--- a/src/mesa/x86/common_x86_asm.S
+++ b/src/mesa/x86/common_x86_asm.S
@@ -1,4 +1,4 @@
-/* $Id: common_x86_asm.S,v 1.10 2002/06/11 01:26:58 brianp Exp $ */
+/* $Id: common_x86_asm.S,v 1.11 2002/07/11 15:33:02 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -129,6 +129,15 @@ LLBL(cpuid_amd):
* information after we verify that the extended functions are
* supported.
*/
+ /* The features we need are almost all in the extended set. The
+ * exception is SSE enable, which is in the standard set (0x1).
+ */
+ MOV_L ( CONST(0x1), EAX )
+ CPUID
+ TEST_L ( EAX, EAX )
+ JZ ( LLBL (cpuid_failed) )
+ MOV_L ( EDX, ESI )
+
MOV_L ( CONST(0x80000000), EAX )
CPUID
TEST_L ( EAX, EAX )
@@ -137,6 +146,10 @@ LLBL(cpuid_amd):
MOV_L ( CONST(0x80000001), EAX )
CPUID
MOV_L ( EDX, EAX )
+
+ AND_L ( CONST(0x02000000), ESI ) /* OR in the SSE bit */
+ OR_L ( ESI, EAX )
+
JMP ( LLBL (cpuid_done) )
LLBL(cpuid_other):