summaryrefslogtreecommitdiff
path: root/libavcodec/armv4l
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2007-02-01 22:50:38 +0000
committerMåns Rullgård <mans@mansr.com>2007-02-01 22:50:38 +0000
commitac62b626009ad682d42aaef325e7f69460c79003 (patch)
treea532603d57a15784d35344f66fda571601a96b26 /libavcodec/armv4l
parent173fd724f5b275b0bf801eb5826252c1b47e6097 (diff)
downloadffmpeg-ac62b626009ad682d42aaef325e7f69460c79003.tar.gz
save one cycle
Originally committed as revision 7799 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/armv4l')
-rw-r--r--libavcodec/armv4l/simple_idct_armv6.S8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/armv4l/simple_idct_armv6.S b/libavcodec/armv4l/simple_idct_armv6.S
index 26174e3bdc..81835a1b77 100644
--- a/libavcodec/armv4l/simple_idct_armv6.S
+++ b/libavcodec/armv4l/simple_idct_armv6.S
@@ -51,13 +51,13 @@ w57: .long W57
Compute partial IDCT of single row.
shift = left-shift amount
a1 = source address
- a3 = row[2,0]
+ a3 = row[2,0] <= 2 cycles
a4 = row[3,1]
+ ip = w42 <= 2 cycles
Output in registers v1--v8
*/
.macro idct_row shift
- ldr ip, [pc, #(w42-.-8)] /* ip = W4 | (W2 << 16) */
ldr lr, [pc, #(w46-.-8)] /* lr = W4 | (W6 << 16) */
mov a2, #(1<<(\shift-1))
smlad v1, a3, ip, a2
@@ -204,6 +204,7 @@ idct_row_armv6:
cmpeq lr, a3, lsr #16
beq 1f
str a2, [sp, #-4]!
+ ldr ip, [pc, #(w42-.-8)] /* ip = W4 | (W2 << 16) */
cmp lr, #0
beq 2f
@@ -249,6 +250,7 @@ idct_col_armv6:
stmfd sp!, {a2, lr}
ldr a3, [a1] /* a3 = row[2,0] */
+ ldr ip, [pc, #(w42-.-8)] /* ip = W4 | (W2 << 16) */
ldr a4, [a1, #8] /* a4 = row[3,1] */
idct_row COL_SHIFT
ldr a2, [sp], #4
@@ -278,6 +280,7 @@ idct_col_put_armv6:
stmfd sp!, {a2, a3, lr}
ldr a3, [a1] /* a3 = row[2,0] */
+ ldr ip, [pc, #(w42-.-8)] /* ip = W4 | (W2 << 16) */
ldr a4, [a1, #8] /* a4 = row[3,1] */
idct_row COL_SHIFT
ldmfd sp!, {a2, a3}
@@ -309,6 +312,7 @@ idct_col_add_armv6:
stmfd sp!, {a2, a3, lr}
ldr a3, [a1] /* a3 = row[2,0] */
+ ldr ip, [pc, #(w42-.-8)] /* ip = W4 | (W2 << 16) */
ldr a4, [a1, #8] /* a4 = row[3,1] */
idct_row COL_SHIFT
ldmfd sp!, {a2, a3}