From d0bf20a4f25ac5de021c860a0c8ad05638ee2078 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Tue, 12 May 2015 02:38:56 +0200 Subject: ppc: vsx: Implement diff_pixels and get_pixels Use a macro to abstract the endianness. --- libavutil/ppc/util_altivec.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libavutil/ppc') diff --git a/libavutil/ppc/util_altivec.h b/libavutil/ppc/util_altivec.h index 8b31327ef4..02cff186f9 100644 --- a/libavutil/ppc/util_altivec.h +++ b/libavutil/ppc/util_altivec.h @@ -111,4 +111,16 @@ static inline vec_u8 load_with_perm_vec(int offset, uint8_t *src, vec_u8 perm_ve #endif /* HAVE_ALTIVEC */ +#if HAVE_VSX +#if HAVE_BIGENDIAN +#define vsx_ld_u8_s16(off, p) \ + ((vec_s16)vec_mergeh((vec_u8)vec_splat_u8(0), \ + (vec_u8)vec_vsx_ld((off), (p)))) +#else +#define vsx_ld_u8_s16(off, p) \ + ((vec_s16)vec_mergeh((vec_u8)vec_vsx_ld((off), (p)), \ + (vec_u8)vec_splat_u8(0))) +#endif /* HAVE_BIGENDIAN */ +#endif /* HAVE_VSX */ + #endif /* AVUTIL_PPC_UTIL_ALTIVEC_H */ -- cgit v1.2.3