1f71323e297a928af368937089d3ed71239786f86Andreas Huber; 2f71323e297a928af368937089d3ed71239786f86Andreas Huber; Copyright (c) 2010 The WebM project authors. All Rights Reserved. 3f71323e297a928af368937089d3ed71239786f86Andreas Huber; 4f71323e297a928af368937089d3ed71239786f86Andreas Huber; Use of this source code is governed by a BSD-style license and patent 5f71323e297a928af368937089d3ed71239786f86Andreas Huber; grant that can be found in the LICENSE file in the root of the source 6f71323e297a928af368937089d3ed71239786f86Andreas Huber; tree. All contributing project authors may be found in the AUTHORS 7f71323e297a928af368937089d3ed71239786f86Andreas Huber; file in the root of the source tree. 8f71323e297a928af368937089d3ed71239786f86Andreas Huber; 9f71323e297a928af368937089d3ed71239786f86Andreas Huber 10f71323e297a928af368937089d3ed71239786f86Andreas Huber EXPORT |vp8_dc_only_idct_add_v6| 11f71323e297a928af368937089d3ed71239786f86Andreas Huber 12f71323e297a928af368937089d3ed71239786f86Andreas Huber AREA |.text|, CODE, READONLY 13f71323e297a928af368937089d3ed71239786f86Andreas Huber 14f71323e297a928af368937089d3ed71239786f86Andreas Huber;void vp8_dc_only_idct_add_v6(short input_dc, unsigned char *pred_ptr, 15f71323e297a928af368937089d3ed71239786f86Andreas Huber; unsigned char *dst_ptr, int pitch, int stride) 16f71323e297a928af368937089d3ed71239786f86Andreas Huber; r0 input_dc 17f71323e297a928af368937089d3ed71239786f86Andreas Huber; r1 pred_ptr 18f71323e297a928af368937089d3ed71239786f86Andreas Huber; r2 dest_ptr 19f71323e297a928af368937089d3ed71239786f86Andreas Huber; r3 pitch 20f71323e297a928af368937089d3ed71239786f86Andreas Huber; sp stride 21f71323e297a928af368937089d3ed71239786f86Andreas Huber 22f71323e297a928af368937089d3ed71239786f86Andreas Huber|vp8_dc_only_idct_add_v6| PROC 23f71323e297a928af368937089d3ed71239786f86Andreas Huber stmdb sp!, {r4 - r7, lr} 24f71323e297a928af368937089d3ed71239786f86Andreas Huber 25f71323e297a928af368937089d3ed71239786f86Andreas Huber add r0, r0, #4 ; input_dc += 4 26f71323e297a928af368937089d3ed71239786f86Andreas Huber ldr r12, c0x0000FFFF 27f71323e297a928af368937089d3ed71239786f86Andreas Huber ldr r4, [r1], r3 28f71323e297a928af368937089d3ed71239786f86Andreas Huber ldr r6, [r1], r3 29f71323e297a928af368937089d3ed71239786f86Andreas Huber and r0, r12, r0, asr #3 ; input_dc >> 3 + mask 30f71323e297a928af368937089d3ed71239786f86Andreas Huber ldr lr, [sp, #20] 31f71323e297a928af368937089d3ed71239786f86Andreas Huber orr r0, r0, r0, lsl #16 ; a1 | a1 32f71323e297a928af368937089d3ed71239786f86Andreas Huber 33f71323e297a928af368937089d3ed71239786f86Andreas Huber uxtab16 r5, r0, r4 ; a1+2 | a1+0 34f71323e297a928af368937089d3ed71239786f86Andreas Huber uxtab16 r4, r0, r4, ror #8 ; a1+3 | a1+1 35f71323e297a928af368937089d3ed71239786f86Andreas Huber uxtab16 r7, r0, r6 36f71323e297a928af368937089d3ed71239786f86Andreas Huber uxtab16 r6, r0, r6, ror #8 37f71323e297a928af368937089d3ed71239786f86Andreas Huber usat16 r5, #8, r5 38f71323e297a928af368937089d3ed71239786f86Andreas Huber usat16 r4, #8, r4 39f71323e297a928af368937089d3ed71239786f86Andreas Huber usat16 r7, #8, r7 40f71323e297a928af368937089d3ed71239786f86Andreas Huber usat16 r6, #8, r6 41f71323e297a928af368937089d3ed71239786f86Andreas Huber orr r5, r5, r4, lsl #8 42f71323e297a928af368937089d3ed71239786f86Andreas Huber orr r7, r7, r6, lsl #8 43f71323e297a928af368937089d3ed71239786f86Andreas Huber ldr r4, [r1], r3 44f71323e297a928af368937089d3ed71239786f86Andreas Huber ldr r6, [r1] 45f71323e297a928af368937089d3ed71239786f86Andreas Huber str r5, [r2], lr 46f71323e297a928af368937089d3ed71239786f86Andreas Huber str r7, [r2], lr 47f71323e297a928af368937089d3ed71239786f86Andreas Huber 48f71323e297a928af368937089d3ed71239786f86Andreas Huber uxtab16 r5, r0, r4 49f71323e297a928af368937089d3ed71239786f86Andreas Huber uxtab16 r4, r0, r4, ror #8 50f71323e297a928af368937089d3ed71239786f86Andreas Huber uxtab16 r7, r0, r6 51f71323e297a928af368937089d3ed71239786f86Andreas Huber uxtab16 r6, r0, r6, ror #8 52f71323e297a928af368937089d3ed71239786f86Andreas Huber usat16 r5, #8, r5 53f71323e297a928af368937089d3ed71239786f86Andreas Huber usat16 r4, #8, r4 54f71323e297a928af368937089d3ed71239786f86Andreas Huber usat16 r7, #8, r7 55f71323e297a928af368937089d3ed71239786f86Andreas Huber usat16 r6, #8, r6 56f71323e297a928af368937089d3ed71239786f86Andreas Huber orr r5, r5, r4, lsl #8 57f71323e297a928af368937089d3ed71239786f86Andreas Huber orr r7, r7, r6, lsl #8 58f71323e297a928af368937089d3ed71239786f86Andreas Huber str r5, [r2], lr 59f71323e297a928af368937089d3ed71239786f86Andreas Huber str r7, [r2] 60f71323e297a928af368937089d3ed71239786f86Andreas Huber 61f71323e297a928af368937089d3ed71239786f86Andreas Huber ldmia sp!, {r4 - r7, pc} 62f71323e297a928af368937089d3ed71239786f86Andreas Huber 63f71323e297a928af368937089d3ed71239786f86Andreas Huber ENDP ; |vp8_dc_only_idct_add_v6| 64f71323e297a928af368937089d3ed71239786f86Andreas Huber 65f71323e297a928af368937089d3ed71239786f86Andreas Huber; Constant Pool 66f71323e297a928af368937089d3ed71239786f86Andreas Huberc0x0000FFFF DCD 0x0000FFFF 67f71323e297a928af368937089d3ed71239786f86Andreas Huber END 68