Commit 3354b0c9 authored by Falk Hüffner's avatar Falk Hüffner

Kludge around compilation failure on Alpha.

Originally committed as revision 1286 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 7ca413b4
...@@ -21,11 +21,15 @@ ...@@ -21,11 +21,15 @@
#include "../dsputil.h" #include "../dsputil.h"
void put_pixels_axp_asm(uint8_t *block, const uint8_t *pixels, void put_pixels_axp_asm(uint8_t *block, const uint8_t *pixels,
int line_size, int h); int line_size, int h);
void put_pixels_clamped_mvi_asm(const DCTELEM *block, uint8_t *pixels, void put_pixels_clamped_mvi_asm(const DCTELEM *block, uint8_t *pixels,
int line_size); int line_size);
void add_pixels_clamped_mvi_asm(const DCTELEM *block, uint8_t *pixels, void add_pixels_clamped_mvi_asm(const DCTELEM *block, uint8_t *pixels,
int line_size); int line_size);
void (*put_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels,
int line_size);
void (*add_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels,
int line_size);
void get_pixels_mvi(DCTELEM *restrict block, void get_pixels_mvi(DCTELEM *restrict block,
const uint8_t *restrict pixels, int line_size); const uint8_t *restrict pixels, int line_size);
...@@ -147,14 +151,14 @@ static inline uint64_t avg2(uint64_t a, uint64_t b) ...@@ -147,14 +151,14 @@ static inline uint64_t avg2(uint64_t a, uint64_t b)
static inline uint64_t avg4(uint64_t l1, uint64_t l2, uint64_t l3, uint64_t l4) static inline uint64_t avg4(uint64_t l1, uint64_t l2, uint64_t l3, uint64_t l4)
{ {
uint64_t r1 = ((l1 & ~BYTE_VEC(0x03)) >> 2) uint64_t r1 = ((l1 & ~BYTE_VEC(0x03)) >> 2)
+ ((l2 & ~BYTE_VEC(0x03)) >> 2) + ((l2 & ~BYTE_VEC(0x03)) >> 2)
+ ((l3 & ~BYTE_VEC(0x03)) >> 2) + ((l3 & ~BYTE_VEC(0x03)) >> 2)
+ ((l4 & ~BYTE_VEC(0x03)) >> 2); + ((l4 & ~BYTE_VEC(0x03)) >> 2);
uint64_t r2 = (( (l1 & BYTE_VEC(0x03)) uint64_t r2 = (( (l1 & BYTE_VEC(0x03))
+ (l2 & BYTE_VEC(0x03)) + (l2 & BYTE_VEC(0x03))
+ (l3 & BYTE_VEC(0x03)) + (l3 & BYTE_VEC(0x03))
+ (l4 & BYTE_VEC(0x03)) + (l4 & BYTE_VEC(0x03))
+ BYTE_VEC(0x02)) >> 2) & BYTE_VEC(0x03); + BYTE_VEC(0x02)) >> 2) & BYTE_VEC(0x03);
return r1 + r2; return r1 + r2;
} }
#endif #endif
...@@ -338,4 +342,7 @@ void dsputil_init_alpha(DSPContext* c, unsigned mask) ...@@ -338,4 +342,7 @@ void dsputil_init_alpha(DSPContext* c, unsigned mask)
c->pix_abs16x16_y2 = pix_abs16x16_y2_mvi; c->pix_abs16x16_y2 = pix_abs16x16_y2_mvi;
c->pix_abs16x16_xy2 = pix_abs16x16_xy2_mvi; c->pix_abs16x16_xy2 = pix_abs16x16_xy2_mvi;
} }
put_pixels_clamped_axp_p = c->put_pixels_clamped;
add_pixels_clamped_axp_p = c->add_pixels_clamped;
} }
...@@ -27,6 +27,11 @@ ...@@ -27,6 +27,11 @@
#include "asm.h" #include "asm.h"
#include "../dsputil.h" #include "../dsputil.h"
extern void (*put_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels,
int line_size);
extern void (*add_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels,
int line_size);
// cos(i * M_PI / 16) * sqrt(2) * (1 << 14) // cos(i * M_PI / 16) * sqrt(2) * (1 << 14)
// W4 is actually exactly 16384, but using 16383 works around // W4 is actually exactly 16384, but using 16383 works around
// accumulating rounding errors for some encoders // accumulating rounding errors for some encoders
...@@ -296,11 +301,11 @@ void simple_idct_axp(DCTELEM *block) ...@@ -296,11 +301,11 @@ void simple_idct_axp(DCTELEM *block)
void simple_idct_put_axp(uint8_t *dest, int line_size, DCTELEM *block) void simple_idct_put_axp(uint8_t *dest, int line_size, DCTELEM *block)
{ {
simple_idct_axp(block); simple_idct_axp(block);
put_pixels_clamped(block, dest, line_size); put_pixels_clamped_axp_p(block, dest, line_size);
} }
void simple_idct_add_axp(uint8_t *dest, int line_size, DCTELEM *block) void simple_idct_add_axp(uint8_t *dest, int line_size, DCTELEM *block)
{ {
simple_idct_axp(block); simple_idct_axp(block);
add_pixels_clamped(block, dest, line_size); add_pixels_clamped_axp_p(block, dest, line_size);
} }
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