mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-03 14:08:56 +00:00
gst/gstcpu.c: Add workaround for gcc-3.2 generating bad code around the cpu detection asm code.
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.
This commit is contained in:
parent
923b573acb
commit
0622e9e391
2 changed files with 9 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
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>
|
2004-04-14 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||||
|
|
||||||
* tools/gst-inspect.c: (print_element_info):
|
* tools/gst-inspect.c: (print_element_info):
|
||||||
|
|
|
@ -69,7 +69,10 @@ gst_cpuid_i386 (int x, unsigned long *eax, unsigned long *ebx,
|
||||||
{
|
{
|
||||||
unsigned long regs[4];
|
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[1]),
|
||||||
"=o" (regs[2]), "=o" (regs[3])
|
"=o" (regs[2]), "=o" (regs[3])
|
||||||
: "a" (x)
|
: "a" (x)
|
||||||
|
|
Loading…
Reference in a new issue