Commit e90a4b78 authored by mellum's avatar mellum

Implement clear_blocks_axp.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@722 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 8e69ab5c
...@@ -105,6 +105,24 @@ void add_pixels_clamped_mvi(const DCTELEM *block, uint8_t *pixels, ...@@ -105,6 +105,24 @@ void add_pixels_clamped_mvi(const DCTELEM *block, uint8_t *pixels,
} }
#endif #endif
static void clear_blocks_axp(DCTELEM *blocks) {
uint64_t *p = (uint64_t *) blocks;
int n = sizeof(DCTELEM) * 6 * 64;
do {
p[0] = 0;
p[1] = 0;
p[2] = 0;
p[3] = 0;
p[4] = 0;
p[5] = 0;
p[6] = 0;
p[7] = 0;
p += 8;
n -= 8 * 8;
} while (n);
}
static inline uint64_t avg2_no_rnd(uint64_t a, uint64_t b) static inline uint64_t avg2_no_rnd(uint64_t a, uint64_t b)
{ {
return (a & b) + (((a ^ b) & BYTE_VEC(0xfe)) >> 1); return (a & b) + (((a ^ b) & BYTE_VEC(0xfe)) >> 1);
...@@ -259,6 +277,8 @@ void dsputil_init_alpha(void) ...@@ -259,6 +277,8 @@ void dsputil_init_alpha(void)
avg_no_rnd_pixels_tab[2] = avg_no_rnd_pixels_y2_axp; avg_no_rnd_pixels_tab[2] = avg_no_rnd_pixels_y2_axp;
avg_no_rnd_pixels_tab[3] = avg_no_rnd_pixels_xy2_axp; avg_no_rnd_pixels_tab[3] = avg_no_rnd_pixels_xy2_axp;
clear_blocks = clear_blocks_axp;
/* amask clears all bits that correspond to present features. */ /* amask clears all bits that correspond to present features. */
if (amask(AMASK_MVI) == 0) { if (amask(AMASK_MVI) == 0) {
put_pixels_clamped = put_pixels_clamped_mvi_asm; put_pixels_clamped = put_pixels_clamped_mvi_asm;
......
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