summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-07-26 12:26:04 +0000
committerdiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-07-26 12:26:04 +0000
commitd1dcbd2f87335437544484b16f933d520e5d38f3 (patch)
tree45f435b11108781fca3489f3c7f02279ca274f44
parent1d0ab0131227d9e34b7e9f19d6e861ad495d5441 (diff)
downloadmpv-d1dcbd2f87335437544484b16f933d520e5d38f3.tar.bz2
mpv-d1dcbd2f87335437544484b16f933d520e5d38f3.tar.xz
Remove AltiVec vector declaration compiler compatibility macros.
The original problem was that FSF and Apple gcc used a different syntax for vector declarations, i.e. {} vs. (). Nowadays Apple gcc versions support the standard {} syntax and versions that support {} are available on all relevant Mac OS X versions. Thus the greater compatibility is no longer worth cluttering the code with macros. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27350 b3059339-0415-0410-9bf9-f77b7e298cf2
-rwxr-xr-xconfigure7
-rw-r--r--liba52/imdct.c12
-rw-r--r--liba52/liba52_changes.diff14
-rw-r--r--mp3lib/dct64_altivec.c12
4 files changed, 12 insertions, 33 deletions
diff --git a/configure b/configure
index 63eb286e27..e540053970 100755
--- a/configure
+++ b/configure
@@ -2470,11 +2470,9 @@ EOF
# check if the compiler supports braces for vector declarations
cat > $TMPC << EOF
$inc_altivec_h
-#define AVV(x...) {x}
-int main(void) { (vector int) AVV(1); return 0; }
+int main(void) { (vector int) {1}; return 0; }
EOF
- cc_check $_altivec_gcc_flags &&
- _def_altivec_vector_braces='#define HAVE_ALTIVEC_VECTOR_BRACES 1'
+ cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
# Disable runtime cpudetection if we cannot generate AltiVec code or
# AltiVec is disabled by the user.
@@ -8630,7 +8628,6 @@ $_def_gethostbyname2
`ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE"`
$_def_altivec_h // enables usage of altivec.h
-$_def_altivec_vector_braces
/* libvo options */
#define SCREEN_SIZE_X 1
diff --git a/liba52/imdct.c b/liba52/imdct.c
index 4b88e6cea3..49e695a066 100644
--- a/liba52/imdct.c
+++ b/liba52/imdct.c
@@ -382,16 +382,10 @@ void imdct_do_512 (sample_t * data, sample_t * delay, sample_t bias)
#define WORD_s2 0x18,0x19,0x1a,0x1b
#define WORD_s3 0x1c,0x1d,0x1e,0x1f
-#ifdef HAVE_ALTIVEC_VECTOR_BRACES
-#define AVV(x...) {x}
-#else
-#define AVV(x...) (x)
-#endif
-
-#define vcprm(a,b,c,d) (const vector unsigned char)AVV(WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d)
-#define vcii(a,b,c,d) (const vector float)AVV(FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d)
+#define vcprm(a,b,c,d) (const vector unsigned char){WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d}
+#define vcii(a,b,c,d) (const vector float){FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d}
-#define FOUROF(a) AVV(a,a,a,a)
+#define FOUROF(a) {a,a,a,a}
// vcprmle is used to keep the same index as in the SSE version.
// it's the same as vcprm, with the index inversed
diff --git a/liba52/liba52_changes.diff b/liba52/liba52_changes.diff
index 3c67c0d0fd..1a7451902c 100644
--- a/liba52/liba52_changes.diff
+++ b/liba52/liba52_changes.diff
@@ -1542,7 +1542,7 @@
{
int i, k;
sample_t t_r, t_i, a_r, a_i, b_r, b_i, w_1, w_2;
-@@ -285,6 +365,707 @@
+@@ -285,6 +365,701 @@
}
}
@@ -1563,16 +1563,10 @@
+#define WORD_s2 0x18,0x19,0x1a,0x1b
+#define WORD_s3 0x1c,0x1d,0x1e,0x1f
+
-+#ifdef HAVE_ALTIVEC_VECTOR_BRACES
-+#define AVV(x...) {x}
-+#else
-+#define AVV(x...) (x)
-+#endif
-+
-+#define vcprm(a,b,c,d) (const vector unsigned char)AVV(WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d)
-+#define vcii(a,b,c,d) (const vector float)AVV(FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d)
++#define vcprm(a,b,c,d) (const vector unsigned char){WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d}
++#define vcii(a,b,c,d) (const vector float){FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d}
+
-+#define FOUROF(a) AVV(a,a,a,a)
++#define FOUROF(a) {a,a,a,a}
+
+// vcprmle is used to keep the same index as in the SSE version.
+// it's the same as vcprm, with the index inversed
diff --git a/mp3lib/dct64_altivec.c b/mp3lib/dct64_altivec.c
index b884903623..3f3eb0fedf 100644
--- a/mp3lib/dct64_altivec.c
+++ b/mp3lib/dct64_altivec.c
@@ -27,16 +27,10 @@
#define WORD_s2 0x18,0x19,0x1a,0x1b
#define WORD_s3 0x1c,0x1d,0x1e,0x1f
-#ifdef HAVE_ALTIVEC_VECTOR_BRACES
-#define AVV(x...) {x}
-#else
-#define AVV(x...) (x)
-#endif
-
-#define vcprm(a,b,c,d) (const vector unsigned char)AVV(WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d)
-#define vcii(a,b,c,d) (const vector float)AVV(FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d)
+#define vcprm(a,b,c,d) (const vector unsigned char){WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d}
+#define vcii(a,b,c,d) (const vector float){FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d}
-#define FOUROF(a) AVV(a,a,a,a)
+#define FOUROF(a) {a,a,a,a}
// vcprmle is used to keep the same index as in the SSE version.
// it's the same as vcprm, with the index inversed