]> git.sesse.net Git - ffmpeg/commitdiff
lsws/ppc/yuv2rgb_altivec: Fix build in non-VSX environments
authorChip Kerchner <Chip.Kerchner@ibm.com>
Sat, 10 Oct 2020 00:17:20 +0000 (20:17 -0400)
committerAndriy Gelman <andriy.gelman@gmail.com>
Tue, 23 Feb 2021 04:19:21 +0000 (23:19 -0500)
Add inline function for vec_xl if VSX is not supported. vec_xl intrinsic
is only available on POWER 7 or higher.

Fixes ticket #8750.

Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
libswscale/ppc/yuv2rgb_altivec.c

index 4f5382e4c19725c4ace8a50708c082bfb3c6f951..5e1033a97335551048e36098c829f8de60e36270 100644 (file)
@@ -284,6 +284,16 @@ static inline void cvtyuvtoRGB(SwsContext *c, vector signed short Y,
  * ------------------------------------------------------------------------------
  */
 
+#if !HAVE_VSX
+static inline vector unsigned char vec_xl(signed long long offset, const ubyte *addr)
+{
+    const vector unsigned char *v_addr = (const vector unsigned char *) (addr + offset);
+    vector unsigned char align_perm = vec_lvsl(offset, addr);
+
+    return (vector unsigned char) vec_perm(v_addr[0], v_addr[1], align_perm);
+}
+#endif /* !HAVE_VSX */
+
 #define DEFCSP420_CVT(name, out_pixels)                                       \
 static int altivec_ ## name(SwsContext *c, const unsigned char **in,          \
                             int *instrides, int srcSliceY, int srcSliceH,     \