# HG changeset patch # User mellum # Date 1025896586 0 # Node ID 70113647b50d428af977fc6270e77f45c565dada # Parent 389e30fe726914a38a6dc88672c4c4d9cc0a8be9 Implement clear_blocks_axp. diff -r 389e30fe7269 -r 70113647b50d alpha/dsputil_alpha.c --- a/alpha/dsputil_alpha.c Thu Jul 04 13:41:27 2002 +0000 +++ b/alpha/dsputil_alpha.c Fri Jul 05 19:16:26 2002 +0000 @@ -105,6 +105,24 @@ } #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 @@ 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;