Commit e6625ca4 authored by Daniel Kolesa's avatar Daniel Kolesa Committed by Lauri Kasanen

swscale: Fix AltiVec/VSX build with recent GCC

The argument to vec_splat_u16 must be a literal. By making the
function always inline and marking the arguments const, gcc can
turn those into literals, and avoid build errors like:

swscale_vsx.c:165:53: error: argument 1 must be a 5-bit signed literal

Fixes #7861.
Signed-off-by: 's avatarDaniel Kolesa <daniel@octaforge.org>
Signed-off-by: 's avatarLauri Kasanen <cand@gmx.com>
parent 1bdb47b7
...@@ -154,8 +154,10 @@ static void yuv2plane1_nbps_u(const int16_t *src, uint16_t *dest, int dstW, ...@@ -154,8 +154,10 @@ static void yuv2plane1_nbps_u(const int16_t *src, uint16_t *dest, int dstW,
} }
} }
static void yuv2plane1_nbps_vsx(const int16_t *src, uint16_t *dest, int dstW, static av_always_inline void yuv2plane1_nbps_vsx(const int16_t *src,
int big_endian, int output_bits) uint16_t *dest, int dstW,
const int big_endian,
const int output_bits)
{ {
const int dst_u = -(uintptr_t)dest & 7; const int dst_u = -(uintptr_t)dest & 7;
const int shift = 15 - output_bits; const int shift = 15 - output_bits;
...@@ -273,8 +275,10 @@ static void yuv2plane1_16_u(const int32_t *src, uint16_t *dest, int dstW, ...@@ -273,8 +275,10 @@ static void yuv2plane1_16_u(const int32_t *src, uint16_t *dest, int dstW,
} }
} }
static void yuv2plane1_16_vsx(const int32_t *src, uint16_t *dest, int dstW, static av_always_inline void yuv2plane1_16_vsx(const int32_t *src,
int big_endian, int output_bits) uint16_t *dest, int dstW,
const int big_endian,
int output_bits)
{ {
const int dst_u = -(uintptr_t)dest & 7; const int dst_u = -(uintptr_t)dest & 7;
const int shift = 3; const int shift = 3;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment