omxVCM4P10_TransformDequantChromaDCFromPair_s.S revision 22e06318d04074d1a7c90caa173857abdcfd153e
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 15omxVCM4P10_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 22unpackLoop: 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 36P0: add r5, pc 37 ldr r6, .LarmVCM4P10_VMatrixQPModTable 38P1: 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