From: mru Date: Mon, 12 Jan 2009 20:37:49 +0000 (+0000) Subject: ARM: use push/pop pseudo-instructions in simple_idct_armv6.S X-Git-Url: https://rtime.felk.cvut.cz/gitweb/frescor/ffmpeg.git/commitdiff_plain/997396a601987b7a0d77ec7ea06a505cff382d09 ARM: use push/pop pseudo-instructions in simple_idct_armv6.S git-svn-id: file:///var/local/repositories/ffmpeg/trunk@16570 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b --- diff --git a/libavcodec/arm/simple_idct_armv6.S b/libavcodec/arm/simple_idct_armv6.S index a276ca42b..9d6455f8e 100644 --- a/libavcodec/arm/simple_idct_armv6.S +++ b/libavcodec/arm/simple_idct_armv6.S @@ -193,7 +193,7 @@ w57: .long W57 r1 = dest */ function idct_row_armv6 - str lr, [sp, #-4]! + push {lr} ldr lr, [r0, #12] /* lr = row[7,5] */ ldr ip, [r0, #4] /* ip = row[6,4] */ @@ -203,7 +203,7 @@ function idct_row_armv6 cmpeq lr, r3 cmpeq lr, r2, lsr #16 beq 1f - str r1, [sp, #-4]! + push {r1} ldr ip, w42 /* ip = W4 | (W2 << 16) */ cmp lr, #0 beq 2f @@ -213,7 +213,7 @@ function idct_row_armv6 2: idct_row4 ROW_SHIFT -3: ldr r1, [sp], #4 +3: pop {r1} idct_finish_shift ROW_SHIFT strh r4, [r1] @@ -225,7 +225,7 @@ function idct_row_armv6 strh r9, [r1, #(16*5)] strh r8, [r1, #(16*7)] - ldr pc, [sp], #4 + pop {pc} 1: mov r2, r2, lsl #3 strh r2, [r1] @@ -236,7 +236,7 @@ function idct_row_armv6 strh r2, [r1, #(16*3)] strh r2, [r1, #(16*5)] strh r2, [r1, #(16*7)] - ldr pc, [sp], #4 + pop {pc} .endfunc /* @@ -245,13 +245,13 @@ function idct_row_armv6 r1 = dest */ function idct_col_armv6 - stmfd sp!, {r1, lr} + push {r1, lr} ldr r2, [r0] /* r2 = row[2,0] */ ldr ip, w42 /* ip = W4 | (W2 << 16) */ ldr r3, [r0, #8] /* r3 = row[3,1] */ idct_row COL_SHIFT - ldr r1, [sp], #4 + pop {r1} idct_finish_shift COL_SHIFT strh r4, [r1] @@ -263,7 +263,7 @@ function idct_col_armv6 strh r9, [r1, #(16*6)] strh r8, [r1, #(16*7)] - ldr pc, [sp], #4 + pop {pc} .endfunc /* @@ -273,13 +273,13 @@ function idct_col_armv6 r2 = line size */ function idct_col_put_armv6 - stmfd sp!, {r1, r2, lr} + push {r1, r2, lr} ldr r2, [r0] /* r2 = row[2,0] */ ldr ip, w42 /* ip = W4 | (W2 << 16) */ ldr r3, [r0, #8] /* r3 = row[3,1] */ idct_row COL_SHIFT - ldmfd sp!, {r1, r2} + pop {r1, r2} idct_finish_shift_sat COL_SHIFT strb r4, [r1], r2 @@ -293,7 +293,7 @@ function idct_col_put_armv6 sub r1, r1, r2, lsl #3 - ldr pc, [sp], #4 + pop {pc} .endfunc /* @@ -303,13 +303,13 @@ function idct_col_put_armv6 r2 = line size */ function idct_col_add_armv6 - stmfd sp!, {r1, r2, lr} + push {r1, r2, lr} ldr r2, [r0] /* r2 = row[2,0] */ ldr ip, w42 /* ip = W4 | (W2 << 16) */ ldr r3, [r0, #8] /* r3 = row[3,1] */ idct_row COL_SHIFT - ldmfd sp!, {r1, r2} + pop {r1, r2} idct_finish ldrb r3, [r1] @@ -348,7 +348,7 @@ function idct_col_add_armv6 sub r1, r1, r2, lsl #3 - ldr pc, [sp], #4 + pop {pc} .endfunc /* @@ -385,7 +385,7 @@ function idct_col_add_armv6 /* void ff_simple_idct_armv6(DCTELEM *data); */ function ff_simple_idct_armv6, export=1 - stmfd sp!, {r4-r11, lr} + push {r4-r11, lr} sub sp, sp, #128 mov r1, sp @@ -395,12 +395,12 @@ function ff_simple_idct_armv6, export=1 idct_rows idct_col_armv6, 2 add sp, sp, #128 - ldmfd sp!, {r4-r11, pc} + pop {r4-r11, pc} .endfunc /* ff_simple_idct_add_armv6(uint8_t *dest, int line_size, DCTELEM *data); */ function ff_simple_idct_add_armv6, export=1 - stmfd sp!, {r0, r1, r4-r11, lr} + push {r0, r1, r4-r11, lr} sub sp, sp, #128 mov r0, r2 @@ -412,12 +412,12 @@ function ff_simple_idct_add_armv6, export=1 idct_rows idct_col_add_armv6, 1 add sp, sp, #(128+8) - ldmfd sp!, {r4-r11, pc} + pop {r4-r11, pc} .endfunc /* ff_simple_idct_put_armv6(uint8_t *dest, int line_size, DCTELEM *data); */ function ff_simple_idct_put_armv6, export=1 - stmfd sp!, {r0, r1, r4-r11, lr} + push {r0, r1, r4-r11, lr} sub sp, sp, #128 mov r0, r2 @@ -429,5 +429,5 @@ function ff_simple_idct_put_armv6, export=1 idct_rows idct_col_put_armv6, 1 add sp, sp, #(128+8) - ldmfd sp!, {r4-r11, pc} + pop {r4-r11, pc} .endfunc