Discussion Board

Results 1 to 4 of 4
  1. #1
    Regular Contributor wangfei406's Avatar
    Join Date
    Aug 2005
    Posts
    61
    我在网上下了一个源码,其中有些函数的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








    @----------------------------

    **** 文件结束*****

  2. #2
    Regular Contributor wangfei406's Avatar
    Join Date
    Aug 2005
    Posts
    61
    问题1:从网下download的文件后缀是.asm,用abld build armi urel编译时编译器无法对.asm编译

    ,后来我把后缀改成.s就可以编译了。这是为什么?gcc到底是支持.asm还是.s?


    我用abld build armi urel时提示第四行"."解析错误,后来我把文件开头的几行改成下面的几行就好了.


    @.text
    @.align 0
    @.arm

    @----------------------------

    .global interpolate8x8_halfpel_hv__FPUcPCUcUlb
    .global XVID_ClearMatrix__FPv
    .global InverseDiscreteCosineTransform_ARM__FPiPCi


    问题2:
    .text
    .align 0
    .arm
    这几行是做什么的?可以删掉吗?删掉后好像运行也正常,但是从网上down下来的代码应该不会有问题的。




    问题3:我在论坛上看到有人说arm4版本比armi版本效率高但是编译生成的文件要大,(见前

    几天我发的帖子)我为了追求效率,想编译成arm4版。但是用abld build arm4 urel时会

    提示错误的指令bx lr:
    ..\..\..\..\WORK\XVID\SYMBIAN\ASM\Xvid_as_arm.S:109: Error: bad instruction `bx lr'
    ..\..\..\..\WORK\XVID\SYMBIAN\ASM\Xvid_as_arm.S:136: Error: bad instruction `bx lr'
    ..\..\..\..\WORK\XVID\SYMBIAN\ASM\Xvid_as_arm.S:484: Error: bad instruction `bx lr'

    而此时abld build armi urel是可以编译成功的,为什么arm4版本bx lr不能通过?应怎样修

    改i?

  3. #3
    Nokia Developer Champion beover1984's Avatar
    Join Date
    Jun 2005
    Location
    Beijing
    Posts
    5,578
    http://discussion.forum.nokia.com/fo...&highlight=asm
    上面这个贴子不知楼主看了没.
    Beover1984
    -----------
    Doing what comes naturally

  4. #4
    Regular Contributor wangfei406's Avatar
    Join Date
    Aug 2005
    Posts
    61
    谢谢,不果好像不能回答我的3个问题啊
    请高手解答我的3个疑问

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved