[FFmpeg-cvslog] r23412 - in trunk/libavcodec/arm: dsputil_init_neon.c dsputil_neon.S

mru subversion
Tue Jun 1 19:21:16 CEST 2010


Author: mru
Date: Tue Jun  1 19:21:16 2010
New Revision: 23412

Log:
ARM: NEON clear_block[s]

Modified:
   trunk/libavcodec/arm/dsputil_init_neon.c
   trunk/libavcodec/arm/dsputil_neon.S

Modified: trunk/libavcodec/arm/dsputil_init_neon.c
==============================================================================
--- trunk/libavcodec/arm/dsputil_init_neon.c	Tue Jun  1 18:36:36 2010	(r23411)
+++ trunk/libavcodec/arm/dsputil_init_neon.c	Tue Jun  1 19:21:16 2010	(r23412)
@@ -34,6 +34,9 @@ void ff_vp3_idct_put_neon(uint8_t *dest,
 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,
         }
     }
 
+    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;

Modified: trunk/libavcodec/arm/dsputil_neon.S
==============================================================================
--- trunk/libavcodec/arm/dsputil_neon.S	Tue Jun  1 18:36:36 2010	(r23411)
+++ trunk/libavcodec/arm/dsputil_neon.S	Tue Jun  1 19:21:16 2010	(r23412)
@@ -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



More information about the ffmpeg-cvslog mailing list