1 ; 2 ; Copyright (c) 2010 The WebM project authors. All Rights Reserved. 3 ; 4 ; Use of this source code is governed by a BSD-style license and patent 5 ; grant that can be found in the LICENSE file in the root of the source 6 ; tree. All contributing project authors may be found in the AUTHORS 7 ; file in the root of the source tree. 8 ; 9 10 11 EXPORT |idct_dequant_0_2x_neon| 12 ARM 13 REQUIRE8 14 PRESERVE8 15 16 AREA ||.text||, CODE, READONLY, ALIGN=2 17 ;void idct_dequant_0_2x_neon(short *q, short dq, unsigned char *pre, 18 ; int pitch, unsigned char *dst, int stride); 19 ; r0 *q 20 ; r1 dq 21 ; r2 *pre 22 ; r3 pitch 23 ; sp *dst 24 ; sp+4 stride 25 |idct_dequant_0_2x_neon| PROC 26 add r12, r2, #4 27 vld1.32 {d2[0]}, [r2], r3 28 vld1.32 {d2[1]}, [r2], r3 29 vld1.32 {d4[0]}, [r2], r3 30 vld1.32 {d4[1]}, [r2] 31 vld1.32 {d8[0]}, [r12], r3 32 vld1.32 {d8[1]}, [r12], r3 33 vld1.32 {d10[0]}, [r12], r3 34 vld1.32 {d10[1]}, [r12] 35 36 ldrh r12, [r0] ; lo q 37 ldrh r2, [r0, #32] ; hi q 38 mov r3, #0 39 strh r3, [r0] 40 strh r3, [r0, #32] 41 42 sxth r12, r12 ; lo 43 mul r0, r12, r1 44 add r0, r0, #4 45 asr r0, r0, #3 46 vdup.16 q0, r0 47 sxth r2, r2 ; hi 48 mul r0, r2, r1 49 add r0, r0, #4 50 asr r0, r0, #3 51 vdup.16 q3, r0 52 53 vaddw.u8 q1, q0, d2 ; lo 54 vaddw.u8 q2, q0, d4 55 vaddw.u8 q4, q3, d8 ; hi 56 vaddw.u8 q5, q3, d10 57 58 ldr r2, [sp] ; dst 59 ldr r3, [sp, #4] ; stride 60 61 vqmovun.s16 d2, q1 ; lo 62 vqmovun.s16 d4, q2 63 vqmovun.s16 d8, q4 ; hi 64 vqmovun.s16 d10, q5 65 66 add r0, r2, #4 67 vst1.32 {d2[0]}, [r2], r3 ; lo 68 vst1.32 {d2[1]}, [r2], r3 69 vst1.32 {d4[0]}, [r2], r3 70 vst1.32 {d4[1]}, [r2] 71 vst1.32 {d8[0]}, [r0], r3 ; hi 72 vst1.32 {d8[1]}, [r0], r3 73 vst1.32 {d10[0]}, [r0], r3 74 vst1.32 {d10[1]}, [r0] 75 76 bx lr 77 78 ENDP ; |idct_dequant_0_2x_neon| 79 END 80