[Liboil-commit] 3 commits - configure.ac liboil/sse

David Schleef ds at kemper.freedesktop.org
Wed Feb 20 14:47:52 PST 2008


 configure.ac                    |   10 +++++-----
 liboil/sse/composite_sse_2pix.c |    4 ++++
 liboil/sse/composite_sse_4pix.c |    4 ++++
 liboil/sse/sad8x8_sse.c         |    3 +++
 liboil/sse/sse_wrapper.h        |    7 ++++---
 5 files changed, 20 insertions(+), 8 deletions(-)

New commits:
commit 617dd77f567281c6d18a894c6ed19b9db2070422
Author: David Schleef <ds at ginger.bigkitten.com>
Date:   Wed Feb 20 14:49:57 2008 -0800

    Disable SSE wrapper, since everything using it has been disabled.

diff --git a/configure.ac b/configure.ac
index e93ead5..0bd7472 100644
--- a/configure.ac
+++ b/configure.ac
@@ -185,11 +185,11 @@ then
 fi
 AM_CONDITIONAL(HAVE_ASM_BLOCKS, test "x$HAVE_ASM_BLOCKS" = "xyes")
 
-if test "x$HAVE_I386" = "xyes"
-then
-  # I'd write a test for this, but as of 4.1.2, gcc is still broken
-  AC_DEFINE(USE_SSE_WRAPPER, 1, [Defined if SSE functions need stack alignment wrappers])
-fi
+#if test "x$HAVE_I386" = "xyes"
+#then
+#  # I'd write a test for this, but as of 4.1.2, gcc is still broken
+#  AC_DEFINE(USE_SSE_WRAPPER, 1, [Defined if SSE functions need stack alignment wrappers])
+#fi
 
 AS_MMX_INTRINSICS(MMX_CFLAGS, HAVE_MMX_INTRINSICS=yes, HAVE_MMX_INTRINSICS=no)
 AS_SSE_INTRINSICS(SSE_CFLAGS, HAVE_SSE_INTRINSICS=yes, HAVE_SSE_INTRINSICS=no)
commit 987b895a0bc787370cc75ff91567b7d09602b5c2
Author: David Schleef <ds at ginger.bigkitten.com>
Date:   Wed Feb 20 14:47:50 2008 -0800

    Disable SSE code that relies on stack alignment.

diff --git a/liboil/sse/composite_sse_2pix.c b/liboil/sse/composite_sse_2pix.c
index cb64ced..13f2cf4 100644
--- a/liboil/sse/composite_sse_2pix.c
+++ b/liboil/sse/composite_sse_2pix.c
@@ -43,6 +43,8 @@
  * the channel value in the low byte.  This means 2 pixels per pass.
  */
 
+#ifdef ENABLE_BROKEN_IMPLS
+
 union m128_int {
   __m128i m128;
   uint64_t ull[2];
@@ -420,3 +422,5 @@ composite_over_u8_sse_2pix (uint8_t *dest, const uint8_t *src, int n)
 }
 OIL_DEFINE_IMPL_FULL_WRAPPER(composite_over_u8_sse_2pix, composite_over_u8,
     OIL_IMPL_FLAG_SSE2);
+#endif
+
diff --git a/liboil/sse/composite_sse_4pix.c b/liboil/sse/composite_sse_4pix.c
index 7614976..6e03ff9 100644
--- a/liboil/sse/composite_sse_4pix.c
+++ b/liboil/sse/composite_sse_4pix.c
@@ -36,6 +36,8 @@
 
 
 
+#ifdef ENABLE_BROKEN_IMPLS
+
 union m128_int {
   __m128i m128;
   uint64_t ull[2];
@@ -536,3 +538,5 @@ composite_over_u8_sse (uint8_t *dest, const uint8_t *src, int n)
 OIL_DEFINE_IMPL_FULL_WRAPPER (composite_over_u8_sse, composite_over_u8,
     OIL_IMPL_FLAG_SSE2);
 
+#endif
+
diff --git a/liboil/sse/sad8x8_sse.c b/liboil/sse/sad8x8_sse.c
index c1b66d2..8795200 100644
--- a/liboil/sse/sad8x8_sse.c
+++ b/liboil/sse/sad8x8_sse.c
@@ -33,6 +33,7 @@
 
 #include "sse_wrapper.h"
 
+#ifdef ENABLE_BROKEN_IMPLS
 union m128_int {
   __m128i m128;
   uint32_t i[4];
@@ -63,3 +64,5 @@ sad8x8_u8_sse (uint32_t *dest, uint8_t *src1, int sstr1, uint8_t *src2,
   *dest = sumi.i[0] + sumi.i[2];
 }
 OIL_DEFINE_IMPL_FULL_WRAPPER(sad8x8_u8_sse, sad8x8_u8, OIL_IMPL_FLAG_SSE2);
+#endif
+
commit 82f9c16adadac1eecac03ba722e5a98c0b7b92b4
Author: David Schleef <ds at ginger.bigkitten.com>
Date:   Wed Feb 20 14:47:12 2008 -0800

    Fix incorrect PIC code in sse wrapper

diff --git a/liboil/sse/sse_wrapper.h b/liboil/sse/sse_wrapper.h
index bffba95..fbe9692 100644
--- a/liboil/sse/sse_wrapper.h
+++ b/liboil/sse/sse_wrapper.h
@@ -16,10 +16,11 @@ static void func ## _wrapper (void) \
       "  movdqa %%xmm0, 0x00(%%esp)\n" \
       "  movdqu 0x18(%%ebp), %%xmm0\n" \
       "  movdqa %%xmm0, 0x10(%%esp)\n" \
-      "  call " #func "\n" \
+      "  call *%[f]\n" \
       "  movl %%ebp, %%esp\n" \
-      : : : "xmm0"); \
-  (void)&func; \
+      : \
+      : [f] "r" (func) \
+      : "xmm0"); \
 }
 
 #define OIL_DEFINE_IMPL_FULL_WRAPPER(func,klass,flags) \


More information about the Liboil-commit mailing list