ARM: NEON clear_block[s]

Originally committed as revision 23412 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Måns Rullgård 2010-06-01 17:21:16 +00:00
parent 522d3930ff
commit 73404a44c1
2 changed files with 22 additions and 0 deletions

View File

@ -34,6 +34,9 @@ void ff_vp3_idct_put_neon(uint8_t *dest, int line_size, DCTELEM *data);
void ff_vp3_idct_add_neon(uint8_t *dest, int line_size, DCTELEM *data); 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_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_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_x2_neon(uint8_t *, const uint8_t *, int, int);
void ff_put_pixels16_y2_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 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx)
} }
} }
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][0] = ff_put_pixels16_neon;
c->put_pixels_tab[0][1] = ff_put_pixels16_x2_neon; c->put_pixels_tab[0][1] = ff_put_pixels16_x2_neon;
c->put_pixels_tab[0][2] = ff_put_pixels16_y2_neon; c->put_pixels_tab[0][2] = ff_put_pixels16_y2_neon;

View File

@ -25,6 +25,22 @@
preserve8 preserve8
.text .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 .macro pixels16 avg=0
.if \avg .if \avg
mov ip, r0 mov ip, r0