Home | History | Annotate | Download | only in src_gcc
      1 /*
      2  * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
      3  *
      4  */
      5 
      6     .eabi_attribute 24, 1
      7     .eabi_attribute 25, 1
      8 
      9     .arm
     10     .fpu neon
     11     .text
     12 
     13     .global omxVCM4P10_TransformDequantChromaDCFromPair
     14     .func   omxVCM4P10_TransformDequantChromaDCFromPair
     15 omxVCM4P10_TransformDequantChromaDCFromPair:
     16     push    {r4-r10, lr}
     17     ldr     r9, [r0,#0]
     18     vmov.i16    d0, #0
     19     mov     r8, #0x1f
     20     vst1.16    {d0}, [r1]
     21     ldrb    r6, [r9], #1
     22 unpackLoop:
     23     tst     r6, #0x10
     24     ldrnesb r5, [r9, #1]
     25     ldrneb  r4, [r9], #2
     26     and     r7, r8, r6, lsl #1
     27     ldreqsb r4, [r9], #1
     28     orrne   r4, r4, r5, lsl #8
     29     tst     r6, #0x20
     30     ldreqb  r6, [r9], #1
     31     strh    r4, [r1, r7]
     32     beq     unpackLoop
     33     ldmia   r1, {r3, r4}
     34     str     r9, [r0, #0]
     35     ldr     r5, .LarmVCM4P10_QPDivTable
     36 P0: add     r5, pc
     37     ldr     r6, .LarmVCM4P10_VMatrixQPModTable
     38 P1: add     r6, pc
     39     saddsubx        r3, r3, r3
     40     saddsubx        r4, r4, r4
     41     ldrsb   r9, [r5, r2]
     42     ldrsb   r2, [r6, r2]
     43     sadd16  r5, r3, r4
     44     ssub16  r6, r3, r4
     45     lsl     r2, r2, r9
     46     vmov    d0, r5, r6
     47     vrev32.16  d0, d0
     48     vdup.16    d1, r2
     49     vmull.s16   q1, d0, d1
     50     vshrn.i32   d2, q1, #1
     51     vst1.16    {d2}, [r1]
     52     mov     r0, #0
     53     pop     {r4-r10, pc}
     54     .endfunc
     55 
     56 .LarmVCM4P10_QPDivTable:
     57     .word armVCM4P10_QPDivTable-(P0+8)
     58 .LarmVCM4P10_VMatrixQPModTable:
     59     .word armVCM4P10_VMatrixQPModTable-(P1+8)
     60 
     61     .end
     62