我在网上下了一个源码,其中有些函数的ARM版是用汇编写的。
以下是汇编文件xvid_as_arm.asm的内容
*****文件开始*****
.text
.align 0
.arm
@----------------------------
.global interpolate8x8_halfpel_hv__FPUcPCUcUlb
.global XVID_ClearMatrix__FPv
.global InverseDiscreteCosineTransform_ARM__FPiPCi
@----------------------------
@ r0 = dst
@ r1 = src
@ r2 = stride
@ r3 = y
@ r4 = src[stride]
@ r5 - r9, r12 = work
@----------------------------
interpolate8x8_halfpel_hv__FPUcPCUcUlb:
stmfd sp!, { r4 - r9, r14 }
tst r3, r3
movne r14, #1
moveq r14, #2
mov r3, #8
.ihhv_loop:
add r4, r1, r2
ldrb r5, [r1, #8]
ldrb r7, [r4, #8]
add r5, r5, r7
@7+8
ldrb r6, [r1, #7]
ldrb r7, [r4, #7]
add r6, r6, r7
add r7, r5, r6
add r7, r7, r14
mov r8, r7, asr #2
@6+7
ldrb r5, [r1, #6]
ldrb r7, [r4, #6]
add r5, r5, r7
add r7, r5, r6
add r7, r7, r14
mov r7, r7, asr #2
orr r8, r7, r8, asl #8
@5+6
ldrb r6, [r1, #5]
ldrb r7, [r4, #5]
add r6, r6, r7
add r7, r5, r6
add r7, r7, r14
mov r7, r7, asr #2
orr r8, r7, r8, asl #8
@4+5
ldrb r5, [r1, #4]
ldrb r7, [r4, #4]
add r5, r5, r7
add r7, r5, r6
add r7, r7, r14
mov r7, r7, asr #2
orr r8, r7, r8, asl #8
str r8, [r0, #4]
@3+4
ldrb r6, [r1, #3]
ldrb r7, [r4, #3]
add r6, r6, r7
add r7, r5, r6
add r7, r7, r14
mov r8, r7, asr #2
@2+3
ldrb r5, [r1, #2]
ldrb r7, [r4, #2]
add r5, r5, r7
add r7, r5, r6
add r7, r7, r14
mov r7, r7, asr #2
orr r8, r7, r8, asl #8
@1+2
ldrb r6, [r1, #1]
ldrb r7, [r4, #1]
add r6, r6, r7
add r7, r5, r6
add r7, r7, r14
mov r7, r7, asr #2
orr r8, r7, r8, asl #8
@0+1
ldrb r5, [r1, #0]
ldrb r7, [r4, #0]
add r5, r5, r7
add r7, r5, r6
add r7, r7, r14
mov r7, r7, asr #2
orr r8, r7, r8, asl #8
str r8, [r0, #0]
add r0, r0, r2
add r1, r1, r2
subs r3, r3, #1
bne .ihhv_loop
ldmfd sp!, { r4 - r9, r14 }
bx lr
@----------------------------
XVID_ClearMatrix__FPv:
mov r1, #0
mov r2, #0
mov r3, #0
mov r12, #0
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
stmia r0!, { r1, r2, r3, r12 }
bx lr
。
。
。
。
。
。
@----------------------------
**** 文件结束*****

Reply With Quote

