Browse Source

ARM: NEON clear_block[s]

Originally committed as revision 23412 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/n0.8
Måns Rullgård 15 years ago
parent
commit
73404a44c1
2 changed files with 22 additions and 0 deletions
  1. +6
    -0
      libavcodec/arm/dsputil_init_neon.c
  2. +16
    -0
      libavcodec/arm/dsputil_neon.S

+ 6
- 0
libavcodec/arm/dsputil_init_neon.c 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_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 @@ 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][1] = ff_put_pixels16_x2_neon;
c->put_pixels_tab[0][2] = ff_put_pixels16_y2_neon;


+ 16
- 0
libavcodec/arm/dsputil_neon.S View File

@@ -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


Loading…
Cancel
Save