aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRong Yan <rongyan236@gmail.com>2015-04-27 03:19:45 +0000
committerAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>2015-05-14 19:07:33 +0200
commitbe1b665dec58f4465cc0dff6031370feedd9989f (patch)
treec92d634f8a473c47148752e5b0eb6753387e933e
parent47f5f6b2303baf3e5e1e5acfee5bbe927be56f8e (diff)
downloadffmpeg-be1b665dec58f4465cc0dff6031370feedd9989f.tar.gz
swscale/ppc/swscale_altivec.c: POWER LE support in yuv2planeX_8() delete macro GET_VF() it was wrong
GCC tool had a bug of PPC intrinsic interpret, which has been fixed in GCC 4.9.1. This bug lead to errors in two of our previous patches. We found this when we update our GCC tools to 4.9.1 and by reading the related info on GCC website. We fix our previous error in two separate commits Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit 603c839398f89d3ef15c47530470fbb0051632c0) Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
-rw-r--r--libswscale/ppc/swscale_altivec.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/libswscale/ppc/swscale_altivec.c b/libswscale/ppc/swscale_altivec.c
index a1548a7717..3f8cedb8d3 100644
--- a/libswscale/ppc/swscale_altivec.c
+++ b/libswscale/ppc/swscale_altivec.c
@@ -40,19 +40,11 @@
ls = vec_perm(a, l2, c);\
a = l2;\
}
-#define GET_VF(a, b, c,d) {\
- a = vec_mergeh(c, d);\
- b = vec_mergel(c, d);\
- }
#else
#define GET_LS(a,b,c,s) {\
ls = a;\
a = vec_vsx_ld(((b) << 1) + 16, s);\
}
-#define GET_VF(a, b, c, d) {\
- a = vec_mergel(d, c);\
- b = vec_mergeh(d, c);\
- }
#endif
#define yuv2planeX_8(d1, d2, l1, src, x, perm, filter) do {\
@@ -61,7 +53,8 @@
vector signed int i1 = vec_mule(filter, ls);\
vector signed int i2 = vec_mulo(filter, ls);\
vector signed int vf1, vf2;\
- GET_VF(vf1, vf2, i1, i2);\
+ vf1 = vec_mergeh(i1, i2);\
+ vf2 = vec_mergel(i1, i2);\
d1 = vec_add(d1, vf1);\
d2 = vec_add(d2, vf2);\
} while (0)