summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2008-10-27 00:25:12 +0000
committerMåns Rullgård <mans@mansr.com>2008-10-27 00:25:12 +0000
commita648516b95bb444788eb48dfcceefede8619c4ad (patch)
treef3df72e0c6aa689074a398f57889c09f1774e8f5 /libavcodec
parentc130bedc99346d644f71ff52b0c762c9bf8d38ec (diff)
ARM: move prefetch_arm to dsputil_arm_s.S
Originally committed as revision 15726 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/armv4l/dsputil_arm.c17
-rw-r--r--libavcodec/armv4l/dsputil_arm_s.S12
2 files changed, 15 insertions, 14 deletions
diff --git a/libavcodec/armv4l/dsputil_arm.c b/libavcodec/armv4l/dsputil_arm.c
index 7dfb790c8e..98f49cfdb5 100644
--- a/libavcodec/armv4l/dsputil_arm.c
+++ b/libavcodec/armv4l/dsputil_arm.c
@@ -57,6 +57,8 @@ void put_no_rnd_pixels8_xy2_arm(uint8_t *block, const uint8_t *pixels, int line_
void put_pixels16_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h);
+extern void ff_prefetch_arm(void *mem, int stride, int h);
+
CALL_2X_PIXELS(put_pixels16_x2_arm , put_pixels8_x2_arm , 8)
CALL_2X_PIXELS(put_pixels16_y2_arm , put_pixels8_y2_arm , 8)
CALL_2X_PIXELS(put_pixels16_xy2_arm, put_pixels8_xy2_arm, 8)
@@ -203,19 +205,6 @@ static void simple_idct_ipp_add(uint8_t *dest, int line_size, DCTELEM *block)
}
#endif
-#ifdef HAVE_ARMV5TE
-static void prefetch_arm(void *mem, int stride, int h)
-{
- __asm__ volatile(
- "1: \n\t"
- "subs %0, %0, #1 \n\t"
- "pld [%1] \n\t"
- "add %1, %1, %2 \n\t"
- "bgt 1b \n\t"
- : "+r"(h), "+r"(mem) : "r"(stride));
-}
-#endif
-
int mm_support(void)
{
return ENABLE_IWMMXT * MM_IWMMXT;
@@ -293,7 +282,7 @@ void dsputil_init_armv4l(DSPContext* c, AVCodecContext *avctx)
c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy2_arm;
#ifdef HAVE_ARMV5TE
- c->prefetch = prefetch_arm;
+ c->prefetch = ff_prefetch_arm;
#endif
#ifdef HAVE_IWMMXT
diff --git a/libavcodec/armv4l/dsputil_arm_s.S b/libavcodec/armv4l/dsputil_arm_s.S
index 196f966dd6..011925106e 100644
--- a/libavcodec/armv4l/dsputil_arm_s.S
+++ b/libavcodec/armv4l/dsputil_arm_s.S
@@ -22,11 +22,23 @@
#include "config.h"
#include "asm.S"
+ preserve8
+
#ifndef HAVE_PLD
.macro pld reg
.endm
#endif
+#ifdef HAVE_ARMV5TE
+function ff_prefetch_arm, export=1
+ subs r2, r2, #1
+ pld [r0]
+ add r0, r0, r1
+ bne ff_prefetch_arm
+ bx lr
+ .endfunc
+#endif
+
.macro ADJ_ALIGN_QUADWORD_D shift, Rd0, Rd1, Rd2, Rd3, Rn0, Rn1, Rn2, Rn3, Rn4
mov \Rd0, \Rn0, lsr #(\shift * 8)
mov \Rd1, \Rn1, lsr #(\shift * 8)