swscale/ppc/swscale_altivec.c: POWER LE support in yuv2planeX_8() delete macro GET_VF...
authorRong Yan <rongyan236@gmail.com>
Mon, 27 Apr 2015 03:19:45 +0000 (03:19 +0000)
committerAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Thu, 14 May 2015 17:07:33 +0000 (19:07 +0200)
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>
libswscale/ppc/swscale_altivec.c

index a1548a7..3f8cedb 100644 (file)
         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)