From: Måns Rullgård Date: Thu, 1 Feb 2007 22:50:38 +0000 (+0000) Subject: save one cycle X-Git-Tag: v0.5~10258 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ac62b626009ad682d42aaef325e7f69460c79003;p=platform%2Fupstream%2Flibav.git save one cycle Originally committed as revision 7799 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavcodec/armv4l/simple_idct_armv6.S b/libavcodec/armv4l/simple_idct_armv6.S index 26174e3..81835a1 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}