summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2005-01-14 00:23:56 +0000
committerDavid Schleef <ds@schleef.org>2005-01-14 00:23:56 +0000
commitcd1eaf60c81ce39a4deeaff4bc1471434ab8c4b3 (patch)
tree0492ad54aa31428646d9dbb80e4e69c99cfa97eb
parent7b47b1bc65acd20b15fa7b62114024f2f6e9b652 (diff)
downloadliboil-cd1eaf60c81ce39a4deeaff4bc1471434ab8c4b3.tar.gz
* liboil/colorspace/rgb2rgba_powerpc.c: (rgb2rgba_ppc): fix code
* liboil/conv/conv_powerpc.c: asm fix * liboil/simdpack/abs_powerpc.c: broken * liboil/simdpack/clip_powerpc.c: same * liboil/simdpack/mix_powerpc.c: same * liboil/simdpack/multsum_powerpc.c: same
-rw-r--r--ChangeLog9
-rw-r--r--liboil/colorspace/rgb2rgba_powerpc.c1
-rw-r--r--liboil/conv/conv_powerpc.c4
-rw-r--r--liboil/simdpack/abs_powerpc.c2
-rw-r--r--liboil/simdpack/clip_powerpc.c6
-rw-r--r--liboil/simdpack/mix_powerpc.c3
-rw-r--r--liboil/simdpack/multsum_powerpc.c2
7 files changed, 23 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index f19a2c9..3768758 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2005-01-13 David Schleef <ds@schleef.org>
+ * liboil/colorspace/rgb2rgba_powerpc.c: (rgb2rgba_ppc): fix code
+ * liboil/conv/conv_powerpc.c: asm fix
+ * liboil/simdpack/abs_powerpc.c: broken
+ * liboil/simdpack/clip_powerpc.c: same
+ * liboil/simdpack/mix_powerpc.c: same
+ * liboil/simdpack/multsum_powerpc.c: same
+
+2005-01-13 David Schleef <ds@schleef.org>
+
* Makefile.am: dist autogen.sh
* README: add comments
* configure.ac: bump version. Fix ordering. failing->broken
diff --git a/liboil/colorspace/rgb2rgba_powerpc.c b/liboil/colorspace/rgb2rgba_powerpc.c
index 3aa3a1c..91a2626 100644
--- a/liboil/colorspace/rgb2rgba_powerpc.c
+++ b/liboil/colorspace/rgb2rgba_powerpc.c
@@ -36,7 +36,6 @@ OIL_DECLARE_CLASS (rgb2rgba);
static void
rgb2rgba_ppc (uint8_t *dest, uint8_t* src, int n)
{
- n /= 3;
dest -= 4;
asm volatile (
" mtctr %2 \n"
diff --git a/liboil/conv/conv_powerpc.c b/liboil/conv/conv_powerpc.c
index c4dd75f..4a41bc4 100644
--- a/liboil/conv/conv_powerpc.c
+++ b/liboil/conv/conv_powerpc.c
@@ -80,10 +80,10 @@ OIL_DEFINE_IMPL_ASM(clipconv_##dsttype##_##srctype##_powerpc, \
" lbz r11,7(%5) \n" \
" stbux r11,%0,%7 \n"
#define LHZ_STHUX \
- " lhz r11,7(%5) \n" \
+ " lhz r11,6(%5) \n" \
" sthux r11,%0,%7 \n"
#define LWZ_STWUX \
- " lwz r11,7(%5) \n" \
+ " lwz r11,4(%5) \n" \
" stwux r11,%0,%7 \n"
DEFINE_CLIPCONVERT_POWERPC(s8,f32, -128.0, 127.0, LFSUX, LBZ_STBUX)
diff --git a/liboil/simdpack/abs_powerpc.c b/liboil/simdpack/abs_powerpc.c
index a95ec9a..67b2ef8 100644
--- a/liboil/simdpack/abs_powerpc.c
+++ b/liboil/simdpack/abs_powerpc.c
@@ -34,6 +34,7 @@
#define ABS(x) ((x)>0 ? (x) : -(x))
+#ifdef ENABLE_BROKEN_IMPLS
static void
abs_u16_s16_a16_altivec (uint16_t * dest, int dstr, int16_t * src, int sstr,
int n)
@@ -60,4 +61,5 @@ abs_u16_s16_a16_altivec (uint16_t * dest, int dstr, int16_t * src, int sstr,
}
OIL_DEFINE_IMPL_FULL (abs_u16_s16_a16_altivec, abs_u16_s16, OIL_IMPL_FLAG_ALTIVEC);
+#endif
diff --git a/liboil/simdpack/clip_powerpc.c b/liboil/simdpack/clip_powerpc.c
index b122e4b..052c9bd 100644
--- a/liboil/simdpack/clip_powerpc.c
+++ b/liboil/simdpack/clip_powerpc.c
@@ -32,6 +32,7 @@
#include <liboil/liboilfunction.h>
#include <liboil/simdpack/simdpack.h>
+#ifdef ENABLE_BROKEN_IMPLS
static void
clip_s16_ppcasm (int16_t *dest, int dstr, int16_t *src, int sstr, int n,
int16_t *low, int16_t *hi)
@@ -56,7 +57,9 @@ clip_s16_ppcasm (int16_t *dest, int dstr, int16_t *src, int sstr, int n,
: "7", "9", "10", "8", "11", "0", "ctr");
}
OIL_DEFINE_IMPL_ASM (clip_s16_ppcasm, clip_s16);
+#endif
+#ifdef ENABLE_BROKEN_IMPLS
static void
clip_s16_ppcasm2 (int16_t *dest, int dstr, int16_t *src, int sstr, int n,
int16_t *low, int16_t *hi)
@@ -81,7 +84,9 @@ clip_s16_ppcasm2 (int16_t *dest, int dstr, int16_t *src, int sstr, int n,
: "9", "10", "8", "11", "0", "ctr");
}
OIL_DEFINE_IMPL_ASM (clip_s16_ppcasm2, clip_s16);
+#endif
+#ifdef ENABLE_BROKEN_IMPLS
/* This is just a basic weave of the previous function. It uses
* a lot of registers and gets pretty hairy, so it would take some
* work to make better. */
@@ -121,5 +126,6 @@ clip_s16_ppcasm3 (int16_t *dest, int dstr, int16_t *src, int sstr, int n,
"18", "19", "20", "21", "22", "ctr");
}
OIL_DEFINE_IMPL_ASM (clip_s16_ppcasm3, clip_s16);
+#endif
diff --git a/liboil/simdpack/mix_powerpc.c b/liboil/simdpack/mix_powerpc.c
index 16e27c6..4c5b55b 100644
--- a/liboil/simdpack/mix_powerpc.c
+++ b/liboil/simdpack/mix_powerpc.c
@@ -34,6 +34,7 @@
#include <math.h>
+#ifdef ENABLE_BROKEN_IMPLS
static void mix_u8_a16_altivec(uint8_t *dest, uint8_t *src1, uint8_t *src2, uint8_t *scale, int n)
{
static const uint8_t permute[] __attribute__ ((__aligned__ (16))) = {
@@ -79,5 +80,5 @@ static void mix_u8_a16_altivec(uint8_t *dest, uint8_t *src1, uint8_t *src2, uint
: "12", "ctr");
}
OIL_DEFINE_IMPL_FULL (mix_u8_a16_altivec, mix_u8, OIL_IMPL_FLAG_ALTIVEC);
-
+#endif
diff --git a/liboil/simdpack/multsum_powerpc.c b/liboil/simdpack/multsum_powerpc.c
index 062000a..b649209 100644
--- a/liboil/simdpack/multsum_powerpc.c
+++ b/liboil/simdpack/multsum_powerpc.c
@@ -34,6 +34,7 @@
#include <math.h>
+#ifdef ENABLE_BROKEN_IMPLS
/* This could probably be improved by unrolling */
static void multsum_f32_ppcasm(float *dest, float *src1, int sstr1,
float *src2, int sstr2, int n)
@@ -54,6 +55,7 @@ static void multsum_f32_ppcasm(float *dest, float *src1, int sstr1,
: "32", "33", "34", "ctr");
}
OIL_DEFINE_IMPL_ASM (multsum_f32_ppcasm, multsum_f32);
+#endif