gst/gstcpu.c: Fix problem when using
authorDavid Schleef <ds@schleef.org>
Mon, 14 Jun 2004 18:15:23 +0000 (18:15 +0000)
committerDavid Schleef <ds@schleef.org>
Mon, 14 Jun 2004 18:15:23 +0000 (18:15 +0000)
Original commit message from CVS:
* gst/gstcpu.c: (gst_cpuid_i386): Fix problem when using
-fomit-frame-pointer.  Appears to generate correct code in
other cases as well.

ChangeLog
gst/gstcpu.c

index 7626368a22a5a1f7719a8b02992414fe48d39ccf..d137702a69e8f6e362daa41d2e64bea269bb5575 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-06-14  David Schleef  <ds@schleef.org>
+
+       * gst/gstcpu.c: (gst_cpuid_i386): Fix problem when using
+       -fomit-frame-pointer.  Appears to generate correct code in
+       other cases as well.
+
 2004-06-14  Johan Dahlin  <johan@gnome.org>
 
        * tools/gst-inspect.c (main): Add two new command line options: -a
index 882430946723d6294d6b81f95e22be554a950e5a..c8e00750d919035b343bf65e140de8a6d34b6240 100644 (file)
@@ -72,11 +72,11 @@ gst_cpuid_i386 (int x, unsigned long *eax, unsigned long *ebx,
   asm (
       /* GCC-3.2 (and possibly others) don't clobber ebx properly,
        * so we save/restore it directly. */
-"  pushl %%ebx\n" "  cpuid\n" "  movl %%eax, %0\n" "  movl %%ebx, %1\n" "  movl %%ecx, %2\n" "  movl %%edx, %3\n" "  popl %%ebx\n":"=o" (regs[0]),
-      "=o" (regs[1]),
-      "=o" (regs[2]), "=o" (regs[3])
+"  movl %%ebx, %%esi\n" "  cpuid\n" "  movl %%eax, %0\n" "  movl %%ebx, %1\n" "  movl %%ecx, %2\n" "  movl %%edx, %3\n" "  movl %%esi, %%ebx\n":"=o" (regs[0]), "=o" (regs[1]), "=o" (regs[2]),
+      "=o" (regs
+          [3])
 :    "a" (x)
-:    "ecx", "edx");
+:    "ecx", "edx", "esi");
 
   *eax = regs[0];
   *ebx = regs[1];