xserver/fb fbmmx.c,1.4,1.5

Lars Knoll <xserver-commit-u7BhqnqprCWvj1b/[email protected]> Wed, 13 Jul 2005 01:57:59 -0700 (PDT)
Newsgroups gmane.comp.freedesktop.xserver.cvs
Message-ID <[email protected]>
Committed by: lars

Update of /cvs/xserver/xserver/fb
In directory gabe:/tmp/cvs-serv3269

Modified Files:
	fbmmx.c 
Log Message:
don't clobber %ebx in the assembler.


Index: fbmmx.c
===================================================================
RCS file: /cvs/xserver/xserver/fb/fbmmx.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- fbmmx.c	13 Jul 2005 07:13:20 -0000	1.4
+++ fbmmx.c	13 Jul 2005 08:57:57 -0000	1.5
@@ -2444,7 +2444,7 @@
                "=m" (vendor[4]), 
                "=m" (vendor[8])
              :
-             : "%eax", "%ebx", "%ecx", "%edx"
+             : "%eax", "%ecx", "%edx"
         );
 
     unsigned int features = 0;
@@ -2462,7 +2462,8 @@
             /* check for AMD MMX extensions */
 
             unsigned int result;            
-            __asm__("mov $0x80000000, %%eax\n"
+            __asm__("push %%ebx\n"
+                    "mov $0x80000000, %%eax\n"
                     "cpuid\n"
                     "xor %%edx, %%edx\n"
                     "cmp $0x1, %%eax\n"
@@ -2471,9 +2472,10 @@
                     "cpuid\n"
                     "skip2:\n"
                     "mov %%edx, %0\n"
+                    "pop %%ebx\n"
                     : "=r" (result)
                     :
-                    : "%eax", "%ebx", "%ecx", "%edx"
+                    : "%eax", "%ecx", "%edx"
                 );
             if (result & (1<<22))
                 features |= MMX_Extensions;