[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