From: Måns Rullgård Date: Sat, 3 Oct 2009 18:22:52 +0000 (+0000) Subject: ARM: update ldm/stm instructions to modern syntax X-Git-Tag: v0.6~3030 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2e823300a6e4c94c293a47294ef5a53dc42f3807;p=platform%2Fupstream%2Flibav.git ARM: update ldm/stm instructions to modern syntax Originally committed as revision 20158 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavcodec/arm/dsputil_arm_s.S b/libavcodec/arm/dsputil_arm_s.S index f62f405..f80053e 100644 --- a/libavcodec/arm/dsputil_arm_s.S +++ b/libavcodec/arm/dsputil_arm_s.S @@ -107,50 +107,50 @@ function put_pixels16_arm, export=1 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) @ block = word aligned, pixles = unaligned pld [r1] - stmfd sp!, {r4-r11, lr} @ R14 is also called LR + push {r4-r11, lr} JMP_ALIGN r5, r1 1: - ldmia r1, {r4-r7} + ldm r1, {r4-r7} add r1, r1, r2 - stmia r0, {r4-r7} + stm r0, {r4-r7} pld [r1] subs r3, r3, #1 add r0, r0, r2 bne 1b - ldmfd sp!, {r4-r11, pc} + pop {r4-r11, pc} .align 5 2: - ldmia r1, {r4-r8} + ldm r1, {r4-r8} add r1, r1, r2 ADJ_ALIGN_QUADWORD_D 1, r9, r10, r11, r12, r4, r5, r6, r7, r8 pld [r1] subs r3, r3, #1 - stmia r0, {r9-r12} + stm r0, {r9-r12} add r0, r0, r2 bne 2b - ldmfd sp!, {r4-r11, pc} + pop {r4-r11, pc} .align 5 3: - ldmia r1, {r4-r8} + ldm r1, {r4-r8} add r1, r1, r2 ADJ_ALIGN_QUADWORD_D 2, r9, r10, r11, r12, r4, r5, r6, r7, r8 pld [r1] subs r3, r3, #1 - stmia r0, {r9-r12} + stm r0, {r9-r12} add r0, r0, r2 bne 3b - ldmfd sp!, {r4-r11, pc} + pop {r4-r11, pc} .align 5 4: - ldmia r1, {r4-r8} + ldm r1, {r4-r8} add r1, r1, r2 ADJ_ALIGN_QUADWORD_D 3, r9, r10, r11, r12, r4, r5, r6, r7, r8 pld [r1] subs r3, r3, #1 - stmia r0, {r9-r12} + stm r0, {r9-r12} add r0, r0, r2 bne 4b - ldmfd sp!, {r4-r11,pc} + pop {r4-r11,pc} .endfunc @ ---------------------------------------------------------------- @@ -159,50 +159,50 @@ function put_pixels8_arm, export=1 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) @ block = word aligned, pixles = unaligned pld [r1] - stmfd sp!, {r4-r5,lr} @ R14 is also called LR + push {r4-r5,lr} JMP_ALIGN r5, r1 1: - ldmia r1, {r4-r5} + ldm r1, {r4-r5} add r1, r1, r2 subs r3, r3, #1 pld [r1] - stmia r0, {r4-r5} + stm r0, {r4-r5} add r0, r0, r2 bne 1b - ldmfd sp!, {r4-r5,pc} + pop {r4-r5,pc} .align 5 2: - ldmia r1, {r4-r5, r12} + ldm r1, {r4-r5, r12} add r1, r1, r2 ADJ_ALIGN_DOUBLEWORD 1, r4, r5, r12 pld [r1] subs r3, r3, #1 - stmia r0, {r4-r5} + stm r0, {r4-r5} add r0, r0, r2 bne 2b - ldmfd sp!, {r4-r5,pc} + pop {r4-r5,pc} .align 5 3: - ldmia r1, {r4-r5, r12} + ldm r1, {r4-r5, r12} add r1, r1, r2 ADJ_ALIGN_DOUBLEWORD 2, r4, r5, r12 pld [r1] subs r3, r3, #1 - stmia r0, {r4-r5} + stm r0, {r4-r5} add r0, r0, r2 bne 3b - ldmfd sp!, {r4-r5,pc} + pop {r4-r5,pc} .align 5 4: - ldmia r1, {r4-r5, r12} + ldm r1, {r4-r5, r12} add r1, r1, r2 ADJ_ALIGN_DOUBLEWORD 3, r4, r5, r12 pld [r1] subs r3, r3, #1 - stmia r0, {r4-r5} + stm r0, {r4-r5} add r0, r0, r2 bne 4b - ldmfd sp!, {r4-r5,pc} + pop {r4-r5,pc} .endfunc @ ---------------------------------------------------------------- @@ -211,58 +211,58 @@ function put_pixels8_x2_arm, export=1 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) @ block = word aligned, pixles = unaligned pld [r1] - stmfd sp!, {r4-r10,lr} @ R14 is also called LR + push {r4-r10,lr} ldr r12, =0xfefefefe JMP_ALIGN r5, r1 1: - ldmia r1, {r4-r5, r10} + ldm r1, {r4-r5, r10} add r1, r1, r2 ADJ_ALIGN_DOUBLEWORD_D 1, r6, r7, r4, r5, r10 pld [r1] RND_AVG32 r8, r9, r4, r5, r6, r7, r12 subs r3, r3, #1 - stmia r0, {r8-r9} + stm r0, {r8-r9} add r0, r0, r2 bne 1b - ldmfd sp!, {r4-r10,pc} + pop {r4-r10,pc} .align 5 2: - ldmia r1, {r4-r5, r10} + ldm r1, {r4-r5, r10} add r1, r1, r2 ADJ_ALIGN_DOUBLEWORD_D 1, r6, r7, r4, r5, r10 ADJ_ALIGN_DOUBLEWORD_D 2, r8, r9, r4, r5, r10 pld [r1] RND_AVG32 r4, r5, r6, r7, r8, r9, r12 subs r3, r3, #1 - stmia r0, {r4-r5} + stm r0, {r4-r5} add r0, r0, r2 bne 2b - ldmfd sp!, {r4-r10,pc} + pop {r4-r10,pc} .align 5 3: - ldmia r1, {r4-r5, r10} + ldm r1, {r4-r5, r10} add r1, r1, r2 ADJ_ALIGN_DOUBLEWORD_D 2, r6, r7, r4, r5, r10 ADJ_ALIGN_DOUBLEWORD_D 3, r8, r9, r4, r5, r10 pld [r1] RND_AVG32 r4, r5, r6, r7, r8, r9, r12 subs r3, r3, #1 - stmia r0, {r4-r5} + stm r0, {r4-r5} add r0, r0, r2 bne 3b - ldmfd sp!, {r4-r10,pc} + pop {r4-r10,pc} .align 5 4: - ldmia r1, {r4-r5, r10} + ldm r1, {r4-r5, r10} add r1, r1, r2 ADJ_ALIGN_DOUBLEWORD_D 3, r6, r7, r4, r5, r10 pld [r1] RND_AVG32 r8, r9, r6, r7, r5, r10, r12 subs r3, r3, #1 - stmia r0, {r8-r9} + stm r0, {r8-r9} add r0, r0, r2 bne 4b - ldmfd sp!, {r4-r10,pc} @@ update PC with LR content. + pop {r4-r10,pc} .endfunc .align 5 @@ -270,58 +270,58 @@ function put_no_rnd_pixels8_x2_arm, export=1 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) @ block = word aligned, pixles = unaligned pld [r1] - stmfd sp!, {r4-r10,lr} @ R14 is also called LR + push {r4-r10,lr} ldr r12, =0xfefefefe JMP_ALIGN r5, r1 1: - ldmia r1, {r4-r5, r10} + ldm r1, {r4-r5, r10} add r1, r1, r2 ADJ_ALIGN_DOUBLEWORD_D 1, r6, r7, r4, r5, r10 pld [r1] NO_RND_AVG32 r8, r9, r4, r5, r6, r7, r12 subs r3, r3, #1 - stmia r0, {r8-r9} + stm r0, {r8-r9} add r0, r0, r2 bne 1b - ldmfd sp!, {r4-r10,pc} + pop {r4-r10,pc} .align 5 2: - ldmia r1, {r4-r5, r10} + ldm r1, {r4-r5, r10} add r1, r1, r2 ADJ_ALIGN_DOUBLEWORD_D 1, r6, r7, r4, r5, r10 ADJ_ALIGN_DOUBLEWORD_D 2, r8, r9, r4, r5, r10 pld [r1] NO_RND_AVG32 r4, r5, r6, r7, r8, r9, r12 subs r3, r3, #1 - stmia r0, {r4-r5} + stm r0, {r4-r5} add r0, r0, r2 bne 2b - ldmfd sp!, {r4-r10,pc} + pop {r4-r10,pc} .align 5 3: - ldmia r1, {r4-r5, r10} + ldm r1, {r4-r5, r10} add r1, r1, r2 ADJ_ALIGN_DOUBLEWORD_D 2, r6, r7, r4, r5, r10 ADJ_ALIGN_DOUBLEWORD_D 3, r8, r9, r4, r5, r10 pld [r1] NO_RND_AVG32 r4, r5, r6, r7, r8, r9, r12 subs r3, r3, #1 - stmia r0, {r4-r5} + stm r0, {r4-r5} add r0, r0, r2 bne 3b - ldmfd sp!, {r4-r10,pc} + pop {r4-r10,pc} .align 5 4: - ldmia r1, {r4-r5, r10} + ldm r1, {r4-r5, r10} add r1, r1, r2 ADJ_ALIGN_DOUBLEWORD_D 3, r6, r7, r4, r5, r10 pld [r1] NO_RND_AVG32 r8, r9, r6, r7, r5, r10, r12 subs r3, r3, #1 - stmia r0, {r8-r9} + stm r0, {r8-r9} add r0, r0, r2 bne 4b - ldmfd sp!, {r4-r10,pc} @@ update PC with LR content. + pop {r4-r10,pc} .endfunc @@ -331,97 +331,97 @@ function put_pixels8_y2_arm, export=1 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) @ block = word aligned, pixles = unaligned pld [r1] - stmfd sp!, {r4-r11,lr} @ R14 is also called LR + push {r4-r11,lr} mov r3, r3, lsr #1 ldr r12, =0xfefefefe JMP_ALIGN r5, r1 1: - ldmia r1, {r4-r5} + ldm r1, {r4-r5} add r1, r1, r2 -6: ldmia r1, {r6-r7} +6: ldm r1, {r6-r7} add r1, r1, r2 pld [r1] RND_AVG32 r8, r9, r4, r5, r6, r7, r12 - ldmia r1, {r4-r5} + ldm r1, {r4-r5} add r1, r1, r2 - stmia r0, {r8-r9} + stm r0, {r8-r9} add r0, r0, r2 pld [r1] RND_AVG32 r8, r9, r6, r7, r4, r5, r12 subs r3, r3, #1 - stmia r0, {r8-r9} + stm r0, {r8-r9} add r0, r0, r2 bne 6b - ldmfd sp!, {r4-r11,pc} + pop {r4-r11,pc} .align 5 2: - ldmia r1, {r4-r6} + ldm r1, {r4-r6} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 1, r4, r5, r6 -6: ldmia r1, {r7-r9} +6: ldm r1, {r7-r9} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 1, r7, r8, r9 RND_AVG32 r10, r11, r4, r5, r7, r8, r12 - stmia r0, {r10-r11} + stm r0, {r10-r11} add r0, r0, r2 - ldmia r1, {r4-r6} + ldm r1, {r4-r6} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 1, r4, r5, r6 subs r3, r3, #1 RND_AVG32 r10, r11, r7, r8, r4, r5, r12 - stmia r0, {r10-r11} + stm r0, {r10-r11} add r0, r0, r2 bne 6b - ldmfd sp!, {r4-r11,pc} + pop {r4-r11,pc} .align 5 3: - ldmia r1, {r4-r6} + ldm r1, {r4-r6} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 2, r4, r5, r6 -6: ldmia r1, {r7-r9} +6: ldm r1, {r7-r9} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 2, r7, r8, r9 RND_AVG32 r10, r11, r4, r5, r7, r8, r12 - stmia r0, {r10-r11} + stm r0, {r10-r11} add r0, r0, r2 - ldmia r1, {r4-r6} + ldm r1, {r4-r6} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 2, r4, r5, r6 subs r3, r3, #1 RND_AVG32 r10, r11, r7, r8, r4, r5, r12 - stmia r0, {r10-r11} + stm r0, {r10-r11} add r0, r0, r2 bne 6b - ldmfd sp!, {r4-r11,pc} + pop {r4-r11,pc} .align 5 4: - ldmia r1, {r4-r6} + ldm r1, {r4-r6} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 3, r4, r5, r6 -6: ldmia r1, {r7-r9} +6: ldm r1, {r7-r9} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 3, r7, r8, r9 RND_AVG32 r10, r11, r4, r5, r7, r8, r12 - stmia r0, {r10-r11} + stm r0, {r10-r11} add r0, r0, r2 - ldmia r1, {r4-r6} + ldm r1, {r4-r6} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 3, r4, r5, r6 subs r3, r3, #1 RND_AVG32 r10, r11, r7, r8, r4, r5, r12 - stmia r0, {r10-r11} + stm r0, {r10-r11} add r0, r0, r2 bne 6b - ldmfd sp!, {r4-r11,pc} + pop {r4-r11,pc} .endfunc .align 5 @@ -429,97 +429,97 @@ function put_no_rnd_pixels8_y2_arm, export=1 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) @ block = word aligned, pixles = unaligned pld [r1] - stmfd sp!, {r4-r11,lr} @ R14 is also called LR + push {r4-r11,lr} mov r3, r3, lsr #1 ldr r12, =0xfefefefe JMP_ALIGN r5, r1 1: - ldmia r1, {r4-r5} + ldm r1, {r4-r5} add r1, r1, r2 -6: ldmia r1, {r6-r7} +6: ldm r1, {r6-r7} add r1, r1, r2 pld [r1] NO_RND_AVG32 r8, r9, r4, r5, r6, r7, r12 - ldmia r1, {r4-r5} + ldm r1, {r4-r5} add r1, r1, r2 - stmia r0, {r8-r9} + stm r0, {r8-r9} add r0, r0, r2 pld [r1] NO_RND_AVG32 r8, r9, r6, r7, r4, r5, r12 subs r3, r3, #1 - stmia r0, {r8-r9} + stm r0, {r8-r9} add r0, r0, r2 bne 6b - ldmfd sp!, {r4-r11,pc} + pop {r4-r11,pc} .align 5 2: - ldmia r1, {r4-r6} + ldm r1, {r4-r6} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 1, r4, r5, r6 -6: ldmia r1, {r7-r9} +6: ldm r1, {r7-r9} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 1, r7, r8, r9 NO_RND_AVG32 r10, r11, r4, r5, r7, r8, r12 - stmia r0, {r10-r11} + stm r0, {r10-r11} add r0, r0, r2 - ldmia r1, {r4-r6} + ldm r1, {r4-r6} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 1, r4, r5, r6 subs r3, r3, #1 NO_RND_AVG32 r10, r11, r7, r8, r4, r5, r12 - stmia r0, {r10-r11} + stm r0, {r10-r11} add r0, r0, r2 bne 6b - ldmfd sp!, {r4-r11,pc} + pop {r4-r11,pc} .align 5 3: - ldmia r1, {r4-r6} + ldm r1, {r4-r6} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 2, r4, r5, r6 -6: ldmia r1, {r7-r9} +6: ldm r1, {r7-r9} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 2, r7, r8, r9 NO_RND_AVG32 r10, r11, r4, r5, r7, r8, r12 - stmia r0, {r10-r11} + stm r0, {r10-r11} add r0, r0, r2 - ldmia r1, {r4-r6} + ldm r1, {r4-r6} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 2, r4, r5, r6 subs r3, r3, #1 NO_RND_AVG32 r10, r11, r7, r8, r4, r5, r12 - stmia r0, {r10-r11} + stm r0, {r10-r11} add r0, r0, r2 bne 6b - ldmfd sp!, {r4-r11,pc} + pop {r4-r11,pc} .align 5 4: - ldmia r1, {r4-r6} + ldm r1, {r4-r6} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 3, r4, r5, r6 -6: ldmia r1, {r7-r9} +6: ldm r1, {r7-r9} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 3, r7, r8, r9 NO_RND_AVG32 r10, r11, r4, r5, r7, r8, r12 - stmia r0, {r10-r11} + stm r0, {r10-r11} add r0, r0, r2 - ldmia r1, {r4-r6} + ldm r1, {r4-r6} add r1, r1, r2 pld [r1] ADJ_ALIGN_DOUBLEWORD 3, r4, r5, r6 subs r3, r3, #1 NO_RND_AVG32 r10, r11, r7, r8, r4, r5, r12 - stmia r0, {r10-r11} + stm r0, {r10-r11} add r0, r0, r2 bne 6b - ldmfd sp!, {r4-r11,pc} + pop {r4-r11,pc} .endfunc .ltorg @@ -529,11 +529,11 @@ function put_no_rnd_pixels8_y2_arm, export=1 @ l1= (a & 0x03030303) + (b & 0x03030303) ?(+ 0x02020202) @ h1= ((a & 0xFCFCFCFCUL) >> 2) + ((b & 0xFCFCFCFCUL) >> 2) .if \align == 0 - ldmia r1, {r6-r8} + ldm r1, {r6-r8} .elseif \align == 3 - ldmia r1, {r5-r7} + ldm r1, {r5-r7} .else - ldmia r1, {r8-r10} + ldm r1, {r8-r10} .endif add r1, r1, r2 pld [r1] @@ -571,9 +571,9 @@ function put_no_rnd_pixels8_y2_arm, export=1 .macro RND_XY2_EXPAND align, rnd RND_XY2_IT \align, \rnd -6: stmfd sp!, {r8-r11} +6: push {r8-r11} RND_XY2_IT \align, \rnd - ldmfd sp!, {r4-r7} + pop {r4-r7} add r4, r4, r8 add r5, r5, r9 ldr r14, =0x0f0f0f0f @@ -583,10 +583,10 @@ function put_no_rnd_pixels8_y2_arm, export=1 and r5, r14, r5, lsr #2 add r4, r4, r6 add r5, r5, r7 - stmia r0, {r4-r5} + stm r0, {r4-r5} add r0, r0, r2 bge 6b - ldmfd sp!, {r4-r11,pc} + pop {r4-r11,pc} .endm .align 5 @@ -594,7 +594,7 @@ function put_pixels8_xy2_arm, export=1 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) @ block = word aligned, pixles = unaligned pld [r1] - stmfd sp!, {r4-r11,lr} @ R14 is also called LR + push {r4-r11,lr} @ R14 is also called LR JMP_ALIGN r5, r1 1: RND_XY2_EXPAND 0, lsl @@ -617,7 +617,7 @@ function put_no_rnd_pixels8_xy2_arm, export=1 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) @ block = word aligned, pixles = unaligned pld [r1] - stmfd sp!, {r4-r11,lr} @ R14 is also called LR + push {r4-r11,lr} JMP_ALIGN r5, r1 1: RND_XY2_EXPAND 0, lsr