From: Falk Hüffner Date: Fri, 5 Jul 2002 19:16:26 +0000 (+0000) Subject: Implement clear_blocks_axp. X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=0a12d6fdfda914663baa460537c36da76f7af3ec;p=ffmpeg Implement clear_blocks_axp. Originally committed as revision 722 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavcodec/alpha/dsputil_alpha.c b/libavcodec/alpha/dsputil_alpha.c index db11d529fb9..816f9458572 100644 --- a/libavcodec/alpha/dsputil_alpha.c +++ b/libavcodec/alpha/dsputil_alpha.c @@ -105,6 +105,24 @@ void add_pixels_clamped_mvi(const DCTELEM *block, uint8_t *pixels, } #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) { return (a & b) + (((a ^ b) & BYTE_VEC(0xfe)) >> 1); @@ -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[3] = avg_no_rnd_pixels_xy2_axp; + clear_blocks = clear_blocks_axp; + /* amask clears all bits that correspond to present features. */ if (amask(AMASK_MVI) == 0) { put_pixels_clamped = put_pixels_clamped_mvi_asm;