aboutsummaryrefslogtreecommitdiffstats
path: root/libswscale/ppc
diff options
context:
space:
mode:
authorRong Yan <rongyan236@gmail.com>2015-04-27 03:19:45 +0000
committerMichael Niedermayer <michaelni@gmx.at>2015-04-27 12:59:05 +0200
commit603c839398f89d3ef15c47530470fbb0051632c0 (patch)
treeefd76a769076559ac72a940af79cf1df9677a2ac /libswscale/ppc
parent46778ab212e25f28a942628b4f9f959c59d2ad26 (diff)
downloadffmpeg-603c839398f89d3ef15c47530470fbb0051632c0.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>
Diffstat (limited to 'libswscale/ppc')
-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 3034c726e7..af9fc88ec0 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)