Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- libavcodec/arm/dsputil_arm.S 2011-03-03 09:38:36.000000000 +0200
- +++ libavcodec/arm/dsputil_arm.S 2011-03-03 12:10:48.942743550 +0200
- @@ -22,7 +22,7 @@
- #include "config.h"
- #include "asm.S"
- - preserve8
- + //preserve8
- #if !HAVE_PLD
- .macro pld reg
- @@ -107,50 +107,50 @@
- @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
- @ block = word aligned, pixles = unaligned
- pld [r1]
- - push {r4-r11, lr}
- + stmfd sp!, {r4-r11, lr}
- JMP_ALIGN r5, r1
- 1:
- - ldm r1, {r4-r7}
- + ldmia r1, {r4-r7}
- add r1, r1, r2
- - stm r0, {r4-r7}
- + stmia r0, {r4-r7}
- pld [r1]
- subs r3, r3, #1
- add r0, r0, r2
- bne 1b
- - pop {r4-r11, pc}
- + ldmfd sp!, {r4-r11, pc}
- .align 5
- 2:
- - ldm r1, {r4-r8}
- + ldmia r1, {r4-r8}
- add r1, r1, r2
- ALIGN_QWORD_D 1, r9, r10, r11, r12, r4, r5, r6, r7, r8
- pld [r1]
- subs r3, r3, #1
- - stm r0, {r9-r12}
- + stmia r0, {r9-r12}
- add r0, r0, r2
- bne 2b
- - pop {r4-r11, pc}
- + ldmfd sp!, {r4-r11, pc}
- .align 5
- 3:
- - ldm r1, {r4-r8}
- + ldmia r1, {r4-r8}
- add r1, r1, r2
- ALIGN_QWORD_D 2, r9, r10, r11, r12, r4, r5, r6, r7, r8
- pld [r1]
- subs r3, r3, #1
- - stm r0, {r9-r12}
- + stmia r0, {r9-r12}
- add r0, r0, r2
- bne 3b
- - pop {r4-r11, pc}
- + ldmfd sp!, {r4-r11, pc}
- .align 5
- 4:
- - ldm r1, {r4-r8}
- + ldmia r1, {r4-r8}
- add r1, r1, r2
- ALIGN_QWORD_D 3, r9, r10, r11, r12, r4, r5, r6, r7, r8
- pld [r1]
- subs r3, r3, #1
- - stm r0, {r9-r12}
- + stmia r0, {r9-r12}
- add r0, r0, r2
- bne 4b
- - pop {r4-r11,pc}
- + ldmfd sp!, {r4-r11,pc}
- endfunc
- @ ----------------------------------------------------------------
- @@ -159,50 +159,50 @@
- @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
- @ block = word aligned, pixles = unaligned
- pld [r1]
- - push {r4-r5,lr}
- + stmfd sp!, {r4-r5,lr}
- JMP_ALIGN r5, r1
- 1:
- - ldm r1, {r4-r5}
- + ldmia r1, {r4-r5}
- add r1, r1, r2
- subs r3, r3, #1
- pld [r1]
- - stm r0, {r4-r5}
- + stmia r0, {r4-r5}
- add r0, r0, r2
- bne 1b
- - pop {r4-r5,pc}
- + ldmfd sp!, {r4-r5,pc}
- .align 5
- 2:
- - ldm r1, {r4-r5, r12}
- + ldmia r1, {r4-r5, r12}
- add r1, r1, r2
- ALIGN_DWORD 1, r4, r5, r12
- pld [r1]
- subs r3, r3, #1
- - stm r0, {r4-r5}
- + stmia r0, {r4-r5}
- add r0, r0, r2
- bne 2b
- - pop {r4-r5,pc}
- + ldmfd sp!, {r4-r5,pc}
- .align 5
- 3:
- - ldm r1, {r4-r5, r12}
- + ldmia r1, {r4-r5, r12}
- add r1, r1, r2
- ALIGN_DWORD 2, r4, r5, r12
- pld [r1]
- subs r3, r3, #1
- - stm r0, {r4-r5}
- + stmia r0, {r4-r5}
- add r0, r0, r2
- bne 3b
- - pop {r4-r5,pc}
- + ldmfd sp!, {r4-r5,pc}
- .align 5
- 4:
- - ldm r1, {r4-r5, r12}
- + ldmia r1, {r4-r5, r12}
- add r1, r1, r2
- ALIGN_DWORD 3, r4, r5, r12
- pld [r1]
- subs r3, r3, #1
- - stm r0, {r4-r5}
- + stmia r0, {r4-r5}
- add r0, r0, r2
- bne 4b
- - pop {r4-r5,pc}
- + ldmfd sp!, {r4-r5,pc}
- endfunc
- @ ----------------------------------------------------------------
- @@ -211,58 +211,58 @@
- @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
- @ block = word aligned, pixles = unaligned
- pld [r1]
- - push {r4-r10,lr}
- + stmfd sp!, {r4-r10,lr}
- ldr r12, =0xfefefefe
- JMP_ALIGN r5, r1
- 1:
- - ldm r1, {r4-r5, r10}
- + ldmia r1, {r4-r5, r10}
- add r1, r1, r2
- ALIGN_DWORD_D 1, r6, r7, r4, r5, r10
- pld [r1]
- RND_AVG32 r8, r9, r4, r5, r6, r7, r12
- subs r3, r3, #1
- - stm r0, {r8-r9}
- + stmia r0, {r8-r9}
- add r0, r0, r2
- bne 1b
- - pop {r4-r10,pc}
- + ldmfd sp!, {r4-r10,pc}
- .align 5
- 2:
- - ldm r1, {r4-r5, r10}
- + ldmia r1, {r4-r5, r10}
- add r1, r1, r2
- ALIGN_DWORD_D 1, r6, r7, r4, r5, r10
- ALIGN_DWORD_D 2, r8, r9, r4, r5, r10
- pld [r1]
- RND_AVG32 r4, r5, r6, r7, r8, r9, r12
- subs r3, r3, #1
- - stm r0, {r4-r5}
- + stmia r0, {r4-r5}
- add r0, r0, r2
- bne 2b
- - pop {r4-r10,pc}
- + ldmfd sp!, {r4-r10,pc}
- .align 5
- 3:
- - ldm r1, {r4-r5, r10}
- + ldmia r1, {r4-r5, r10}
- add r1, r1, r2
- ALIGN_DWORD_D 2, r6, r7, r4, r5, r10
- ALIGN_DWORD_D 3, r8, r9, r4, r5, r10
- pld [r1]
- RND_AVG32 r4, r5, r6, r7, r8, r9, r12
- subs r3, r3, #1
- - stm r0, {r4-r5}
- + stmia r0, {r4-r5}
- add r0, r0, r2
- bne 3b
- - pop {r4-r10,pc}
- + ldmfd sp!, {r4-r10,pc}
- .align 5
- 4:
- - ldm r1, {r4-r5, r10}
- + ldmia r1, {r4-r5, r10}
- add r1, r1, r2
- ALIGN_DWORD_D 3, r6, r7, r4, r5, r10
- pld [r1]
- RND_AVG32 r8, r9, r6, r7, r5, r10, r12
- subs r3, r3, #1
- - stm r0, {r8-r9}
- + stmia r0, {r8-r9}
- add r0, r0, r2
- bne 4b
- - pop {r4-r10,pc}
- + ldmfd sp!, {r4-r10,pc}
- endfunc
- .align 5
- @@ -270,58 +270,58 @@
- @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
- @ block = word aligned, pixles = unaligned
- pld [r1]
- - push {r4-r10,lr}
- + stmfd sp!, {r4-r10,lr}
- ldr r12, =0xfefefefe
- JMP_ALIGN r5, r1
- 1:
- - ldm r1, {r4-r5, r10}
- + ldmia r1, {r4-r5, r10}
- add r1, r1, r2
- ALIGN_DWORD_D 1, r6, r7, r4, r5, r10
- pld [r1]
- NO_RND_AVG32 r8, r9, r4, r5, r6, r7, r12
- subs r3, r3, #1
- - stm r0, {r8-r9}
- + stmia r0, {r8-r9}
- add r0, r0, r2
- bne 1b
- - pop {r4-r10,pc}
- + ldmfd sp!, {r4-r10,pc}
- .align 5
- 2:
- - ldm r1, {r4-r5, r10}
- + ldmia r1, {r4-r5, r10}
- add r1, r1, r2
- ALIGN_DWORD_D 1, r6, r7, r4, r5, r10
- ALIGN_DWORD_D 2, r8, r9, r4, r5, r10
- pld [r1]
- NO_RND_AVG32 r4, r5, r6, r7, r8, r9, r12
- subs r3, r3, #1
- - stm r0, {r4-r5}
- + stmia r0, {r4-r5}
- add r0, r0, r2
- bne 2b
- - pop {r4-r10,pc}
- + ldmfd sp!, {r4-r10,pc}
- .align 5
- 3:
- - ldm r1, {r4-r5, r10}
- + ldmia r1, {r4-r5, r10}
- add r1, r1, r2
- ALIGN_DWORD_D 2, r6, r7, r4, r5, r10
- ALIGN_DWORD_D 3, r8, r9, r4, r5, r10
- pld [r1]
- NO_RND_AVG32 r4, r5, r6, r7, r8, r9, r12
- subs r3, r3, #1
- - stm r0, {r4-r5}
- + stmia r0, {r4-r5}
- add r0, r0, r2
- bne 3b
- - pop {r4-r10,pc}
- + ldmfd sp!, {r4-r10,pc}
- .align 5
- 4:
- - ldm r1, {r4-r5, r10}
- + ldmia r1, {r4-r5, r10}
- add r1, r1, r2
- ALIGN_DWORD_D 3, r6, r7, r4, r5, r10
- pld [r1]
- NO_RND_AVG32 r8, r9, r6, r7, r5, r10, r12
- subs r3, r3, #1
- - stm r0, {r8-r9}
- + stmia r0, {r8-r9}
- add r0, r0, r2
- bne 4b
- - pop {r4-r10,pc}
- + ldmfd sp!, {r4-r10,pc}
- endfunc
- @@ -331,97 +331,97 @@
- @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
- @ block = word aligned, pixles = unaligned
- pld [r1]
- - push {r4-r11,lr}
- + stmfd sp!, {r4-r11,lr}
- mov r3, r3, lsr #1
- ldr r12, =0xfefefefe
- JMP_ALIGN r5, r1
- 1:
- - ldm r1, {r4-r5}
- + ldmia r1, {r4-r5}
- add r1, r1, r2
- -6: ldm r1, {r6-r7}
- +6: ldmia r1, {r6-r7}
- add r1, r1, r2
- pld [r1]
- RND_AVG32 r8, r9, r4, r5, r6, r7, r12
- - ldm r1, {r4-r5}
- + ldmia r1, {r4-r5}
- add r1, r1, r2
- - stm r0, {r8-r9}
- + stmia r0, {r8-r9}
- add r0, r0, r2
- pld [r1]
- RND_AVG32 r8, r9, r6, r7, r4, r5, r12
- subs r3, r3, #1
- - stm r0, {r8-r9}
- + stmia r0, {r8-r9}
- add r0, r0, r2
- bne 6b
- - pop {r4-r11,pc}
- + ldmfd sp!, {r4-r11,pc}
- .align 5
- 2:
- - ldm r1, {r4-r6}
- + ldmia r1, {r4-r6}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 1, r4, r5, r6
- -6: ldm r1, {r7-r9}
- +6: ldmia r1, {r7-r9}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 1, r7, r8, r9
- RND_AVG32 r10, r11, r4, r5, r7, r8, r12
- - stm r0, {r10-r11}
- + stmia r0, {r10-r11}
- add r0, r0, r2
- - ldm r1, {r4-r6}
- + ldmia r1, {r4-r6}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 1, r4, r5, r6
- subs r3, r3, #1
- RND_AVG32 r10, r11, r7, r8, r4, r5, r12
- - stm r0, {r10-r11}
- + stmia r0, {r10-r11}
- add r0, r0, r2
- bne 6b
- - pop {r4-r11,pc}
- + ldmfd sp!, {r4-r11,pc}
- .align 5
- 3:
- - ldm r1, {r4-r6}
- + ldmia r1, {r4-r6}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 2, r4, r5, r6
- -6: ldm r1, {r7-r9}
- +6: ldmia r1, {r7-r9}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 2, r7, r8, r9
- RND_AVG32 r10, r11, r4, r5, r7, r8, r12
- - stm r0, {r10-r11}
- + stmia r0, {r10-r11}
- add r0, r0, r2
- - ldm r1, {r4-r6}
- + ldmia r1, {r4-r6}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 2, r4, r5, r6
- subs r3, r3, #1
- RND_AVG32 r10, r11, r7, r8, r4, r5, r12
- - stm r0, {r10-r11}
- + stmia r0, {r10-r11}
- add r0, r0, r2
- bne 6b
- - pop {r4-r11,pc}
- + ldmfd sp!, {r4-r11,pc}
- .align 5
- 4:
- - ldm r1, {r4-r6}
- + ldmia r1, {r4-r6}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 3, r4, r5, r6
- -6: ldm r1, {r7-r9}
- +6: ldmia r1, {r7-r9}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 3, r7, r8, r9
- RND_AVG32 r10, r11, r4, r5, r7, r8, r12
- - stm r0, {r10-r11}
- + stmia r0, {r10-r11}
- add r0, r0, r2
- - ldm r1, {r4-r6}
- + ldmia r1, {r4-r6}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 3, r4, r5, r6
- subs r3, r3, #1
- RND_AVG32 r10, r11, r7, r8, r4, r5, r12
- - stm r0, {r10-r11}
- + stmia r0, {r10-r11}
- add r0, r0, r2
- bne 6b
- - pop {r4-r11,pc}
- + ldmfd sp!, {r4-r11,pc}
- endfunc
- .align 5
- @@ -429,97 +429,97 @@
- @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
- @ block = word aligned, pixles = unaligned
- pld [r1]
- - push {r4-r11,lr}
- + stmfd sp!, {r4-r11,lr}
- mov r3, r3, lsr #1
- ldr r12, =0xfefefefe
- JMP_ALIGN r5, r1
- 1:
- - ldm r1, {r4-r5}
- + ldmia r1, {r4-r5}
- add r1, r1, r2
- -6: ldm r1, {r6-r7}
- +6: ldmia r1, {r6-r7}
- add r1, r1, r2
- pld [r1]
- NO_RND_AVG32 r8, r9, r4, r5, r6, r7, r12
- - ldm r1, {r4-r5}
- + ldmia r1, {r4-r5}
- add r1, r1, r2
- - stm r0, {r8-r9}
- + stmia r0, {r8-r9}
- add r0, r0, r2
- pld [r1]
- NO_RND_AVG32 r8, r9, r6, r7, r4, r5, r12
- subs r3, r3, #1
- - stm r0, {r8-r9}
- + stmia r0, {r8-r9}
- add r0, r0, r2
- bne 6b
- - pop {r4-r11,pc}
- + ldmfd sp!, {r4-r11,pc}
- .align 5
- 2:
- - ldm r1, {r4-r6}
- + ldmia r1, {r4-r6}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 1, r4, r5, r6
- -6: ldm r1, {r7-r9}
- +6: ldmia r1, {r7-r9}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 1, r7, r8, r9
- NO_RND_AVG32 r10, r11, r4, r5, r7, r8, r12
- - stm r0, {r10-r11}
- + stmia r0, {r10-r11}
- add r0, r0, r2
- - ldm r1, {r4-r6}
- + ldmia r1, {r4-r6}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 1, r4, r5, r6
- subs r3, r3, #1
- NO_RND_AVG32 r10, r11, r7, r8, r4, r5, r12
- - stm r0, {r10-r11}
- + stmia r0, {r10-r11}
- add r0, r0, r2
- bne 6b
- - pop {r4-r11,pc}
- + ldmfd sp!, {r4-r11,pc}
- .align 5
- 3:
- - ldm r1, {r4-r6}
- + ldmia r1, {r4-r6}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 2, r4, r5, r6
- -6: ldm r1, {r7-r9}
- +6: ldmia r1, {r7-r9}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 2, r7, r8, r9
- NO_RND_AVG32 r10, r11, r4, r5, r7, r8, r12
- - stm r0, {r10-r11}
- + stmia r0, {r10-r11}
- add r0, r0, r2
- - ldm r1, {r4-r6}
- + ldmia r1, {r4-r6}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 2, r4, r5, r6
- subs r3, r3, #1
- NO_RND_AVG32 r10, r11, r7, r8, r4, r5, r12
- - stm r0, {r10-r11}
- + stmia r0, {r10-r11}
- add r0, r0, r2
- bne 6b
- - pop {r4-r11,pc}
- + ldmfd sp!, {r4-r11,pc}
- .align 5
- 4:
- - ldm r1, {r4-r6}
- + ldmia r1, {r4-r6}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 3, r4, r5, r6
- -6: ldm r1, {r7-r9}
- +6: ldmia r1, {r7-r9}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 3, r7, r8, r9
- NO_RND_AVG32 r10, r11, r4, r5, r7, r8, r12
- - stm r0, {r10-r11}
- + stmia r0, {r10-r11}
- add r0, r0, r2
- - ldm r1, {r4-r6}
- + ldmia r1, {r4-r6}
- add r1, r1, r2
- pld [r1]
- ALIGN_DWORD 3, r4, r5, r6
- subs r3, r3, #1
- NO_RND_AVG32 r10, r11, r7, r8, r4, r5, r12
- - stm r0, {r10-r11}
- + stmia r0, {r10-r11}
- add r0, r0, r2
- bne 6b
- - pop {r4-r11,pc}
- + ldmfd sp!, {r4-r11,pc}
- endfunc
- .ltorg
- @@ -529,11 +529,11 @@
- @ l1= (a & 0x03030303) + (b & 0x03030303) ?(+ 0x02020202)
- @ h1= ((a & 0xFCFCFCFCUL) >> 2) + ((b & 0xFCFCFCFCUL) >> 2)
- .if \align == 0
- - ldm r1, {r6-r8}
- + ldmia r1, {r6-r8}
- .elseif \align == 3
- - ldm r1, {r5-r7}
- + ldmia r1, {r5-r7}
- .else
- - ldm r1, {r8-r10}
- + ldmia r1, {r8-r10}
- .endif
- add r1, r1, r2
- pld [r1]
- @@ -548,7 +548,8 @@
- .elseif \align == 3
- ALIGN_DWORD_D 3, r4, r5, r5, r6, r7
- .endif
- - ldr r14, =0x03030303
- + @ldr r14, =0x03030303
- + ldr r14, [r12, #0]
- tst r3, #1
- and r8, r4, r14
- and r9, r5, r14
- @@ -557,13 +558,14 @@
- andeq r14, r14, r14, \rnd #1
- add r8, r8, r10
- add r9, r9, r11
- - ldr r12, =0xfcfcfcfc >> 2
- addeq r8, r8, r14
- addeq r9, r9, r14
- - and r4, r12, r4, lsr #2
- - and r5, r12, r5, lsr #2
- - and r6, r12, r6, lsr #2
- - and r7, r12, r7, lsr #2
- + @ldr r12, =0xfcfcfcfc >> 2
- + ldr r14, [r12, #4] @ 0xFCFCFCFC >> 2
- + and r4, r14, r4, lsr #2
- + and r5, r14, r5, lsr #2
- + and r6, r14, r6, lsr #2
- + and r7, r14, r7, lsr #2
- add r10, r4, r6
- add r11, r5, r7
- subs r3, r3, #1
- @@ -571,22 +573,23 @@
- .macro RND_XY2_EXPAND align, rnd
- RND_XY2_IT \align, \rnd
- -6: push {r8-r11}
- +6: stmfd sp!, {r8-r11}
- RND_XY2_IT \align, \rnd
- - pop {r4-r7}
- + ldmfd sp!, {r4-r7}
- add r4, r4, r8
- add r5, r5, r9
- - ldr r14, =0x0f0f0f0f
- + @ldr r14, =0x0f0f0f0f
- + ldr r14, [r12, #8]
- add r6, r6, r10
- add r7, r7, r11
- and r4, r14, r4, lsr #2
- and r5, r14, r5, lsr #2
- add r4, r4, r6
- add r5, r5, r7
- - stm r0, {r4-r5}
- + stmia r0, {r4-r5}
- add r0, r0, r2
- bge 6b
- - pop {r4-r11,pc}
- + ldmfd sp!, {r4-r11,pc}
- .endm
- .align 5
- @@ -594,7 +597,7 @@
- @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
- @ block = word aligned, pixles = unaligned
- pld [r1]
- - push {r4-r11,lr} @ R14 is also called LR
- + stmfd sp!, {r4-r11,lr} @ R14 is also called LR
- JMP_ALIGN r5, r1
- 1: RND_XY2_EXPAND 0, lsl
- .align 5
- @@ -610,7 +613,7 @@
- @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
- @ block = word aligned, pixles = unaligned
- pld [r1]
- - push {r4-r11,lr}
- + stmfd sp!, {r4-r11,lr}
- JMP_ALIGN r5, r1
- 1: RND_XY2_EXPAND 0, lsr
- .align 5
- @@ -624,7 +627,7 @@
- .align 5
- @ void ff_add_pixels_clamped_arm(int16_t *block, uint8_t *dest, int stride)
- function ff_add_pixels_clamped_arm, export=1
- - push {r4-r10}
- + stmfd sp!, {r4-r10}
- mov r10, #8
- 1:
- ldr r4, [r1] /* load dest */
- @@ -707,6 +710,6 @@
- add r1, r1, r2
- bne 1b
- - pop {r4-r10}
- + ldmfd sp!, {r4-r10}
- bx lr
- endfunc
- diff -wBNru libavcodec/arm/simple_idct_armv6.S libavcodec/arm/simple_idct_armv6.S
- --- libavcodec/arm/simple_idct_armv6.S 2011-03-03 09:38:36.000000000 +0200
- +++ libavcodec/arm/simple_idct_armv6.S 2011-03-03 10:34:15.000000000 +0200
- @@ -59,9 +59,9 @@
- Output in registers r4--r11
- */
- - .macro idct_row shift
- + .macro idct_row
- ldr lr, w46 /* lr = W4 | (W6 << 16) */
- - mov r1, #(1<<(\shift-1))
- + mov r1, #(1<<($0-1))
- smlad r4, r2, ip, r1
- smlsd r7, r2, ip, r1
- ldr ip, w13 /* ip = W1 | (W3 << 16) */
- @@ -100,10 +100,10 @@
- Output in registers r4--r11
- */
- - .macro idct_row4 shift
- + .macro idct_row4
- ldr lr, w46 /* lr = W4 | (W6 << 16) */
- ldr r10,w57 /* r10 = W5 | (W7 << 16) */
- - mov r1, #(1<<(\shift-1))
- + mov r1, #(1<<($0-1))
- smlad r4, r2, ip, r1
- smlsd r7, r2, ip, r1
- ldr ip, w13 /* ip = W1 | (W3 << 16) */
- @@ -138,28 +138,29 @@
- shift = right-shift amount
- Input/output in registers r4--r11
- */
- - .macro idct_finish_shift shift
- + .macro idct_finish_shift
- add r3, r4, r8 /* r3 = A0 + B0 */
- sub r2, r4, r8 /* r2 = A0 - B0 */
- - mov r4, r3, asr #\shift
- - mov r8, r2, asr #\shift
- + mov r4, r3, asr $0
- + mov r8, r2, asr $0
- sub r3, r5, r9 /* r3 = A1 + B1 */
- add r2, r5, r9 /* r2 = A1 - B1 */
- - mov r5, r3, asr #\shift
- - mov r9, r2, asr #\shift
- + mov r5, r3, asr $0
- + mov r9, r2, asr $0
- add r3, r6, r10 /* r3 = A2 + B2 */
- sub r2, r6, r10 /* r2 = A2 - B2 */
- - mov r6, r3, asr #\shift
- - mov r10,r2, asr #\shift
- + mov r6, r3, asr $0
- + mov r10,r2, asr $0
- add r3, r7, r11 /* r3 = A3 + B3 */
- sub r2, r7, r11 /* r2 = A3 - B3 */
- - mov r7, r3, asr #\shift
- - mov r11,r2, asr #\shift
- + mov r7, r3, asr $0
- + mov r11,r2, asr $0
- .endm
- +
- /*
- Compute final part of IDCT single row, saturating results at 8 bits.
- shift = right-shift amount
- @@ -165,26 +166,26 @@
- shift = right-shift amount
- Input/output in registers r4--r11
- */
- - .macro idct_finish_shift_sat shift
- + .macro idct_finish_shift_sat
- add r3, r4, r8 /* r3 = A0 + B0 */
- sub ip, r4, r8 /* ip = A0 - B0 */
- - usat r4, #8, r3, asr #\shift
- - usat r8, #8, ip, asr #\shift
- + usat r4, #8, r3, asr $0
- + usat r8, #8, ip, asr $0
- sub r3, r5, r9 /* r3 = A1 + B1 */
- add ip, r5, r9 /* ip = A1 - B1 */
- - usat r5, #8, r3, asr #\shift
- - usat r9, #8, ip, asr #\shift
- + usat r5, #8, r3, asr $0
- + usat r9, #8, ip, asr $0
- add r3, r6, r10 /* r3 = A2 + B2 */
- sub ip, r6, r10 /* ip = A2 - B2 */
- - usat r6, #8, r3, asr #\shift
- - usat r10,#8, ip, asr #\shift
- + usat r6, #8, r3, asr $0
- + usat r10,#8, ip, asr $0
- add r3, r7, r11 /* r3 = A3 + B3 */
- sub ip, r7, r11 /* ip = A3 - B3 */
- - usat r7, #8, r3, asr #\shift
- - usat r11,#8, ip, asr #\shift
- + usat r7, #8, r3, asr $0
- + usat r11,#8, ip, asr $0
- .endm
- /*
- @@ -193,7 +194,7 @@
- r1 = dest
- */
- function idct_row_armv6
- - push {lr}
- + str lr, [sp, #-4]!
- ldr lr, [r0, #12] /* lr = row[7,5] */
- ldr ip, [r0, #4] /* ip = row[6,4] */
- @@ -203,7 +204,7 @@
- cmpeq lr, r3
- cmpeq lr, r2, lsr #16
- beq 1f
- - push {r1}
- + str r1, [sp, #-4]!
- ldr ip, w42 /* ip = W4 | (W2 << 16) */
- cmp lr, #0
- beq 2f
- @@ -213,8 +214,8 @@
- 2: idct_row4 ROW_SHIFT
- -3: pop {r1}
- - idct_finish_shift ROW_SHIFT
- +3: ldr r1, [sp], #4
- + idct_finish_shift #ROW_SHIFT
- strh r4, [r1]
- strh r5, [r1, #(16*2)]
- @@ -225,7 +226,7 @@
- strh r9, [r1, #(16*5)]
- strh r8, [r1, #(16*7)]
- - pop {pc}
- + ldr pc, [sp], #4
- 1: mov r2, r2, lsl #3
- strh r2, [r1]
- @@ -236,7 +237,7 @@
- strh r2, [r1, #(16*3)]
- strh r2, [r1, #(16*5)]
- strh r2, [r1, #(16*7)]
- - pop {pc}
- + ldr pc, [sp], #4
- endfunc
- /*
- @@ -245,14 +246,14 @@
- r1 = dest
- */
- function idct_col_armv6
- - push {r1, lr}
- + stmfd sp!, {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
- - pop {r1}
- - idct_finish_shift COL_SHIFT
- + ldr r1, [sp], #4
- + idct_finish_shift #COL_SHIFT
- strh r4, [r1]
- strh r5, [r1, #(16*1)]
- @@ -263,7 +264,7 @@
- strh r9, [r1, #(16*6)]
- strh r8, [r1, #(16*7)]
- - pop {pc}
- + ldr pc, [sp], #4
- endfunc
- /*
- @@ -273,14 +274,14 @@
- r2 = line size
- */
- function idct_col_put_armv6
- - push {r1, r2, lr}
- + stmfd sp!, {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
- - pop {r1, r2}
- - idct_finish_shift_sat COL_SHIFT
- + ldmfd sp!, {r1, r2}
- + idct_finish_shift_sat #COL_SHIFT
- strb r4, [r1], r2
- strb r5, [r1], r2
- @@ -293,7 +294,7 @@
- sub r1, r1, r2, lsl #3
- - pop {pc}
- + ldr pc, [sp], #4
- endfunc
- /*
- @@ -303,13 +304,13 @@
- r2 = line size
- */
- function idct_col_add_armv6
- - push {r1, r2, lr}
- + stmfd sp!, {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
- - pop {r1, r2}
- + ldmfd sp!, {r1, r2}
- idct_finish
- ldrb r3, [r1]
- @@ -348,7 +349,7 @@
- sub r1, r1, r2, lsl #3
- - pop {pc}
- + ldr pc, [sp], #4
- endfunc
- /*
- @@ -356,78 +357,78 @@
- func = IDCT row->col function
- width = width of columns in bytes
- */
- - .macro idct_rows func width
- - bl \func
- + .macro idct_rows
- + bl $0
- add r0, r0, #(16*2)
- - add r1, r1, #\width
- - bl \func
- + add r1, r1, $1
- + bl $0
- add r0, r0, #(16*2)
- - add r1, r1, #\width
- - bl \func
- + add r1, r1, $1
- + bl $0
- add r0, r0, #(16*2)
- - add r1, r1, #\width
- - bl \func
- + add r1, r1, $1
- + bl $0
- sub r0, r0, #(16*5)
- - add r1, r1, #\width
- - bl \func
- + add r1, r1, $1
- + bl $0
- add r0, r0, #(16*2)
- - add r1, r1, #\width
- - bl \func
- + add r1, r1, $1
- + bl $0
- add r0, r0, #(16*2)
- - add r1, r1, #\width
- - bl \func
- + add r1, r1, $1
- + bl $0
- add r0, r0, #(16*2)
- - add r1, r1, #\width
- - bl \func
- + add r1, r1, $1
- + bl $0
- sub r0, r0, #(16*7)
- .endm
- /* void ff_simple_idct_armv6(DCTELEM *data); */
- function ff_simple_idct_armv6, export=1
- - push {r4-r11, lr}
- + stmfd sp!, {r4-r11, lr}
- sub sp, sp, #128
- mov r1, sp
- - idct_rows idct_row_armv6, 2
- + idct_rows _idct_row_armv6, #2
- mov r1, r0
- mov r0, sp
- - idct_rows idct_col_armv6, 2
- + idct_rows _idct_col_armv6, #2
- add sp, sp, #128
- - pop {r4-r11, pc}
- + ldmfd sp!, {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
- - push {r0, r1, r4-r11, lr}
- + stmfd sp!, {r0, r1, r4-r11, lr}
- sub sp, sp, #128
- mov r0, r2
- mov r1, sp
- - idct_rows idct_row_armv6, 2
- + idct_rows _idct_row_armv6, #2
- mov r0, sp
- ldr r1, [sp, #128]
- ldr r2, [sp, #(128+4)]
- - idct_rows idct_col_add_armv6, 1
- + idct_rows _idct_col_add_armv6, #1
- add sp, sp, #(128+8)
- - pop {r4-r11, pc}
- + ldmfd sp!, {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
- - push {r0, r1, r4-r11, lr}
- + stmfd sp!, {r0, r1, r4-r11, lr}
- sub sp, sp, #128
- mov r0, r2
- mov r1, sp
- - idct_rows idct_row_armv6, 2
- + idct_rows _idct_row_armv6, #2
- mov r0, sp
- ldr r1, [sp, #128]
- ldr r2, [sp, #(128+4)]
- - idct_rows idct_col_put_armv6, 1
- + idct_rows _idct_col_put_armv6, #1
- add sp, sp, #(128+8)
- - pop {r4-r11, pc}
- + ldmfd sp!, {r4-r11, pc}
- endfunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement