SOURCES: liboil-no_sse2_on_i386.patch (NEW) - sse2 expects memory ...

pluto pluto at pld-linux.org
Thu Feb 1 21:47:51 CET 2007


Author: pluto                        Date: Thu Feb  1 20:47:51 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- sse2 expects memory references to be 16-byte aligned
  but liboil uses non-16-byte aligned u32* operands,
  so just disable it on x86-32.

---- Files affected:
SOURCES:
   liboil-no_sse2_on_i386.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/liboil-no_sse2_on_i386.patch
diff -u /dev/null SOURCES/liboil-no_sse2_on_i386.patch:1.1
--- /dev/null	Thu Feb  1 21:47:51 2007
+++ SOURCES/liboil-no_sse2_on_i386.patch	Thu Feb  1 21:47:46 2007
@@ -0,0 +1,48 @@
+--- liboil/liboilcpu.c.orig	2006-05-23 02:07:56.000000000 +0200
++++ liboil/liboilcpu.c
+@@ -518,6 +518,9 @@ oil_cpu_detect_cpuid (void)
+     OIL_WARNING("L2 cache: %d kbytes, %d assoc, %d lines/tag, %d line size\n",
+         (ecx>>16)&0xffff, (ecx>>12)&0xf, (ecx>>8)&0xf, ecx&0xff);
+   }
++#ifdef __i386__
++  oil_cpu_flags &= ~(OIL_IMPL_FLAG_SSE2 | OIL_IMPL_FLAG_SSE3);
++#endif
+ }
+ 
+ /* Reduce the set of CPU capabilities detected by whatever detection mechanism
+--- liboil/sse/composite_sse_2pix.c.orig	2005-12-21 02:27:54.000000000 +0100
++++ liboil/sse/composite_sse_2pix.c
+@@ -136,6 +136,7 @@ static __m128i over_argb_sse2(__m128i de
+   return _mm_adds_epu8(src, muldiv_255_sse2(dest, negate_argb_sse2(srca)));
+ }
+ 
++#ifndef __i386__
+ static void
+ composite_in_argb_sse_2pix (uint32_t *dest, const uint32_t *src,
+     const uint8_t *mask, int n)
+@@ -389,6 +396,7 @@ composite_in_over_argb_const_mask_sse_2p
+ }
+ OIL_DEFINE_IMPL_FULL (composite_in_over_argb_const_mask_sse_2pix,
+     composite_in_over_argb_const_mask, OIL_IMPL_FLAG_SSE2);
++#endif
+ 
+ static void
+ composite_over_u8_sse_2pix (uint8_t *dest, const uint8_t *src, int n)
+--- liboil/sse/composite_sse_4pix.c.orig	2006-10-23 20:03:45.000000000 +0200
++++ liboil/sse/composite_sse_4pix.c
+@@ -270,6 +270,7 @@ composite_in_argb_const_mask_sse (uint32
+ OIL_DEFINE_IMPL_FULL (composite_in_argb_const_mask_sse,
+     composite_in_argb_const_mask, OIL_IMPL_FLAG_SSE2);
+ 
++#ifndef __i386__
+ static void
+ composite_over_argb_sse (uint32_t *dest, const uint32_t *src, int n)
+ {
+@@ -504,6 +511,7 @@ composite_in_over_argb_const_mask_sse (u
+ }
+ OIL_DEFINE_IMPL_FULL (composite_in_over_argb_const_mask_sse,
+     composite_in_over_argb_const_mask, OIL_IMPL_FLAG_SSE2);
++#endif
+ 
+ static void
+ composite_over_u8_sse (uint8_t *dest, const uint8_t *src, int n)
================================================================


More information about the pld-cvs-commit mailing list