[Liboil] x86 broken in CVS
Stephane Fillod
f8cfe at free.fr
Mon Dec 12 13:19:47 PST 2005
Copy/paste can be dangerous at times ;-)
Bare x86 (non _64) systems have no such rbx.
--- liboil/liboilcpu.c 12 Dec 2005 10:10:46 -0000 1.24
+++ liboil/liboilcpu.c 12 Dec 2005 21:08:00 -0000
@@ -139,10 +139,10 @@ static void
get_cpuid (uint32_t op, uint32_t *a, uint32_t *b, uint32_t *c, uint32_t
*d)
{
__asm__ (
- " pushq %%rbx\n"
+ " pushl %%ebx\n"
" cpuid\n"
" mov %%ebx, %%esi\n"
- " popq %%rbx\n"
+ " popl %%ebx\n"
: "=a" (*a), "=S" (*b), "=c" (*c), "=d" (*d)
: "0" (op));
}
BTW, one test of the "make check" fails on fbCompositeSolid with
the following reason:
OIL: ERROR ../../liboil/liboil/liboiltest.c 351: oil_test_check_impl(): function fbCompositeSolid_nx8888mmx wrote after area for parameter i_n
OIL: ERROR ../../liboil/liboil/liboiltest.c 368: oil_test_check_impl(): function fbCompositeSolid_nx8888mmx in class composite_over_argb_const_src failed check (0 > 91) outside=1
[...]
composite_over_argb_const_src
fbCompositeSolid_nx8888mmx
failed stride test
This has been tested under a Debian/Linux box with an AMD Duron CPU.
I haven't investigated further.
--
Stephane
More information about the Liboil
mailing list