Mercurial > libavcodec.hg
changeset 11807:659f16d04776 libavcodec
ARM: NEON clear_block[s]
author | mru |
---|---|
date | Tue, 01 Jun 2010 17:21:16 +0000 |
parents | 8d8ca3eb8389 |
children | 85f6fd5dd599 |
files | arm/dsputil_init_neon.c arm/dsputil_neon.S |
diffstat | 2 files changed, 22 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/arm/dsputil_init_neon.c Tue Jun 01 16:36:36 2010 +0000 +++ b/arm/dsputil_init_neon.c Tue Jun 01 17:21:16 2010 +0000 @@ -34,6 +34,9 @@ void ff_vp3_idct_add_neon(uint8_t *dest, int line_size, DCTELEM *data); void ff_vp3_idct_dc_add_neon(uint8_t *dest, int line_size, const DCTELEM *data); +void ff_clear_block_neon(DCTELEM *block); +void ff_clear_blocks_neon(DCTELEM *blocks); + void ff_put_pixels16_neon(uint8_t *, const uint8_t *, int, int); void ff_put_pixels16_x2_neon(uint8_t *, const uint8_t *, int, int); void ff_put_pixels16_y2_neon(uint8_t *, const uint8_t *, int, int); @@ -189,6 +192,9 @@ } } + c->clear_block = ff_clear_block_neon; + c->clear_blocks = ff_clear_blocks_neon; + c->put_pixels_tab[0][0] = ff_put_pixels16_neon; c->put_pixels_tab[0][1] = ff_put_pixels16_x2_neon; c->put_pixels_tab[0][2] = ff_put_pixels16_y2_neon;
--- a/arm/dsputil_neon.S Tue Jun 01 16:36:36 2010 +0000 +++ b/arm/dsputil_neon.S Tue Jun 01 17:21:16 2010 +0000 @@ -25,6 +25,22 @@ preserve8 .text +function ff_clear_block_neon, export=1 + vmov.i16 q0, #0 + .rept 8 + vst1.16 {q0}, [r0,:128]! + .endr + bx lr +endfunc + +function ff_clear_blocks_neon, export=1 + vmov.i16 q0, #0 + .rept 8*6 + vst1.16 {q0}, [r0,:128]! + .endr + bx lr +endfunc + .macro pixels16 avg=0 .if \avg mov ip, r0