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 603c839398)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Rong Yan 2015-04-27 03:19:45 +00:00 committed by Michael Niedermayer
parent 2f85f511ff
commit cb63a8c646
1 changed files with 2 additions and 9 deletions

View File

@ -40,19 +40,11 @@
ls = vec_perm(a, l2, c);\ ls = vec_perm(a, l2, c);\
a = l2;\ a = l2;\
} }
#define GET_VF(a, b, c,d) {\
a = vec_mergeh(c, d);\
b = vec_mergel(c, d);\
}
#else #else
#define GET_LS(a,b,c,s) {\ #define GET_LS(a,b,c,s) {\
ls = a;\ ls = a;\
a = vec_vsx_ld(((b) << 1) + 16, s);\ 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 #endif
#define yuv2planeX_8(d1, d2, l1, src, x, perm, filter) do {\ #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 i1 = vec_mule(filter, ls);\
vector signed int i2 = vec_mulo(filter, ls);\ vector signed int i2 = vec_mulo(filter, ls);\
vector signed int vf1, vf2;\ 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);\ d1 = vec_add(d1, vf1);\
d2 = vec_add(d2, vf2);\ d2 = vec_add(d2, vf2);\
} while (0) } while (0)