Original commit message from CVS:
* gst/gstcpu.c: (gst_cpuid_i386): Add workaround for gcc-3.2
generating bad code around the cpu detection asm code.
+2004-04-14 David Schleef <ds@schleef.org>
+
+ * gst/gstcpu.c: (gst_cpuid_i386): Add workaround for gcc-3.2
+ generating bad code around the cpu detection asm code.
+
2004-04-14 Thomas Vander Stichele <thomas at apestaart dot org>
* tools/gst-inspect.c: (print_element_info):
{
unsigned long regs[4];
-asm (" cpuid\n" " movl %%eax, %0\n" " movl %%ebx, %1\n" " movl %%ecx, %2\n" " movl %%edx, %3\n":"=o" (regs[0]),
+ 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])
: "a" (x)