Mercurial > libavcodec.hg
comparison armv4l/dsputil_arm.c @ 7688:160d5c1ae60a libavcodec
ARM: add prefetch function using ARMv5 PLD instruction
author | mru |
---|---|
date | Mon, 25 Aug 2008 02:29:04 +0000 |
parents | 74488eb735a6 |
children | eebc7209c47f |
comparison
equal
deleted
inserted
replaced
7687:e5b5a9af1b68 | 7688:160d5c1ae60a |
---|---|
201 add_pixels_clamped_ARM(block, dest, line_size); | 201 add_pixels_clamped_ARM(block, dest, line_size); |
202 #endif | 202 #endif |
203 } | 203 } |
204 #endif | 204 #endif |
205 | 205 |
206 #ifdef HAVE_ARMV5TE | |
207 static void prefetch_arm(void *mem, int stride, int h) | |
208 { | |
209 asm volatile( | |
210 "1: \n\t" | |
211 "subs %0, %0, #1 \n\t" | |
212 "pld [%1] \n\t" | |
213 "add %1, %1, %2 \n\t" | |
214 "bgt 1b \n\t" | |
215 : "+r"(h), "+r"(mem) : "r"(stride)); | |
216 } | |
217 #endif | |
218 | |
206 int mm_support(void) | 219 int mm_support(void) |
207 { | 220 { |
208 return ENABLE_IWMMXT * MM_IWMMXT; | 221 return ENABLE_IWMMXT * MM_IWMMXT; |
209 } | 222 } |
210 | 223 |
277 c->put_no_rnd_pixels_tab[1][0] = put_pixels8_arm;//OK | 290 c->put_no_rnd_pixels_tab[1][0] = put_pixels8_arm;//OK |
278 c->put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels8_x2_arm; //OK | 291 c->put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels8_x2_arm; //OK |
279 c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels8_y2_arm; //OK | 292 c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels8_y2_arm; //OK |
280 c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy2_arm; | 293 c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy2_arm; |
281 | 294 |
295 #ifdef HAVE_ARMV5TE | |
296 c->prefetch = prefetch_arm; | |
297 #endif | |
298 | |
282 #ifdef HAVE_IWMMXT | 299 #ifdef HAVE_IWMMXT |
283 dsputil_init_iwmmxt(c, avctx); | 300 dsputil_init_iwmmxt(c, avctx); |
284 #endif | 301 #endif |
285 #ifdef HAVE_ARMVFP | 302 #ifdef HAVE_ARMVFP |
286 ff_float_init_arm_vfp(c, avctx); | 303 ff_float_init_arm_vfp(c, avctx); |