From: Fritz Koenig Date: Tue, 12 Oct 2010 16:42:03 +0000 (-0700) Subject: GCC inline restrictions were not adequate. X-Git-Tag: 1.0_branch~866 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e50f5d40376b3817fa2bf2e2b2fdf8a0084c3460;p=profile%2Fivi%2Flibvpx.git GCC inline restrictions were not adequate. =r was not restrictive enough and the compiler was not returning ebx correctly. Change-Id: I7606e384067bd5fb69189802f1ff64ccc5aa02d6 --- diff --git a/vpx_ports/x86.h b/vpx_ports/x86.h index a8e4607..05a4591 100644 --- a/vpx_ports/x86.h +++ b/vpx_ports/x86.h @@ -24,12 +24,11 @@ #else #define cpuid(func,ax,bx,cx,dx)\ __asm__ __volatile__ (\ - "pushl %%ebx \n\t" \ - "cpuid \n\t" \ - "movl %%ebx, %1 \n\t" \ - "popl %%ebx \n\t" \ - : "=a" (ax), "=r" (bx), "=c" (cx), "=d" (dx) \ - : "a" (func)); + "mov %%ebx, %%edi \n\t" \ + "cpuid \n\t" \ + "xchg %%edi, %%ebx \n\t" \ + : "=a" (ax), "=D" (bx), "=c" (cx), "=d" (dx) \ + : "a" (func)); #endif #else #if ARCH_X86_64