117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@/* 217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** Copyright 2003-2010, VisualOn, Inc. 317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** 417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** Licensed under the Apache License, Version 2.0 (the "License"); 517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** you may not use this file except in compliance with the License. 617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** You may obtain a copy of the License at 717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** 817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** http://www.apache.org/licenses/LICENSE-2.0 917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** 1017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** Unless required by applicable law or agreed to in writing, software 1117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** distributed under the License is distributed on an "AS IS" BASIS, 1217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** See the License for the specific language governing permissions and 1417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ ** limitations under the License. 1517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ */ 1617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@**********************************************************************/ 1717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@void Syn_filt( 1817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ Word16 a[], /* (i) Q12 : a[m+1] prediction coefficients */ 1917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ Word16 x[], /* (i) : input signal */ 2017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ Word16 y[], /* (o) : output signal */ 2117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ Word16 mem[], /* (i/o) : memory associated with this filtering. */ 2217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@) 2317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@*********************************************************************** 2417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ a[] --- r0 2517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ x[] --- r1 2617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ y[] --- r2 2717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ mem[] --- r3 2817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong@ m --- 16 lg --- 80 update --- 1 2917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 3017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong .section .text 3117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong .global Syn_filt_asm 3217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong .extern voAWB_Copy 3317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 3417299ab50ceb70d904e610e3b2d7fb2361a11e03James DongSyn_filt_asm: 3517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 3617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STMFD r13!, {r4 - r12, r14} 3717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SUB r13, r13, #700 @ y_buf[L_FRAME16k + M16k] 3817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 3917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong MOV r4, r3 @ copy mem[] address 4017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong MOV r5, r13 @ copy yy = y_buf address 4117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 4217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong @ for(i = 0@ i < m@ i++) 4317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong @{ 4417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong @ *yy++ = mem[i]@ 4517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong @} 4617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 4717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r6, [r4], #2 4817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r7, [r4], #2 4917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r8, [r4], #2 5017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r9, [r4], #2 5117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r10, [r4], #2 5217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r11, [r4], #2 5317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r12, [r4], #2 5417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r14, [r4], #2 5517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 5617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r6, [r5], #2 5717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r7, [r5], #2 5817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r8, [r5], #2 5917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r9, [r5], #2 6017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r10, [r5], #2 6117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r11, [r5], #2 6217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r12, [r5], #2 6317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r14, [r5], #2 6417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 6517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r6, [r4], #2 6617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r7, [r4], #2 6717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r8, [r4], #2 6817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r9, [r4], #2 6917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r10, [r4], #2 7017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r11, [r4], #2 7117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r12, [r4], #2 7217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRH r14, [r4], #2 7317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 7417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r6, [r5], #2 7517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r7, [r5], #2 7617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r8, [r5], #2 7717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r9, [r5], #2 7817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r10, [r5], #2 7917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r11, [r5], #2 8017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r12, [r5], #2 8117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r14, [r5], #2 8217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 8317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r5, [r0] @ load a[0] 8417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong MOV r8, #0 @ i = 0 8517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong MOV r5, r5, ASR #1 @ a0 = a[0] >> 1 8617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong @MOV r4, r13 8717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong @ load all a[] 8817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 8917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDR r14, =0xffff 9017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r6, [r0, #2] @ load a[1] 9117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r7, [r0, #4] @ load a[2] 9217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r9, [r0, #6] @ load a[3] 9317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r11,[r0, #8] @ load a[4] 9417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong AND r6, r6, r14 9517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong AND r9, r9, r14 9617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ORR r10, r6, r7, LSL #16 @ -a[2] -- -a[1] 9717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ORR r12, r9, r11, LSL #16 @ -a[4] -- -a[3] 9817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STR r10, [r13, #-4] 9917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STR r12, [r13, #-8] 10017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 10117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r6, [r0, #10] @ load a[5] 10217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r7, [r0, #12] @ load a[6] 10317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r9, [r0, #14] @ load a[7] 10417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r11,[r0, #16] @ load a[8] 10517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong AND r6, r6, r14 10617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong AND r9, r9, r14 10717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ORR r10, r6, r7, LSL #16 @ -a[6] -- -a[5] 10817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ORR r12, r9, r11, LSL #16 @ -a[8] -- -a[7] 10917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STR r10, [r13, #-12] 11017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STR r12, [r13, #-16] 11117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 11217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r6, [r0, #18] @ load a[9] 11317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r7, [r0, #20] @ load a[10] 11417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r9, [r0, #22] @ load a[11] 11517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r11,[r0, #24] @ load a[12] 11617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong AND r6, r6, r14 11717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong AND r9, r9, r14 11817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ORR r10, r6, r7, LSL #16 @ -a[10] -- -a[9] 11917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ORR r12, r9, r11, LSL #16 @ -a[12] -- -a[11] 12017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STR r10, [r13, #-20] 12117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STR r12, [r13, #-24] 12217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 12317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r6, [r0, #26] @ load a[13] 12417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r7, [r0, #28] @ load a[14] 12517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r9, [r0, #30] @ load a[15] 12617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r11,[r0, #32] @ load a[16] 12717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong AND r6, r6, r14 12817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong AND r9, r9, r14 12917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ORR r10, r6, r7, LSL #16 @ -a[14] -- -a[13] 13017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ORR r12, r9, r11, LSL #16 @ -a[16] -- -a[15] 13117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STR r10, [r13, #-28] 13217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STR r12, [r13, #-32] 13317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 13417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ADD r4, r13, #32 13517299ab50ceb70d904e610e3b2d7fb2361a11e03James DongLOOP: 13617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r6, [r1], #2 @ load x[i] 13717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ADD r10, r4, r8, LSL #1 @ temp_p = yy + i 13817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 13917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong MUL r0, r5, r6 @ L_tmp = x[i] * a0 14017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong @ for(j = 1@ j <= m, j+=8) 14117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDR r7, [r13, #-4] @ -a[2] -a[1] 14217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r9, [r10, #-2] @ *(temp_p - 1) 14317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r12, [r10, #-4] @ *(temp_p - 2) 14417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 14517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 14617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMULBB r14, r9, r7 @ -a[1] * (*(temp_p -1)) 14717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 14817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r6, [r10, #-6] @ *(temp_p - 3) 14917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 15017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABT r14, r12, r7, r14 @ -a[2] * (*(temp_p - 2)) 15117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 15217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDR r7, [r13, #-8] @ -a[4] -a[3] 15317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r11, [r10, #-8] @ *(temp_p - 4) 15417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 15517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABB r14, r6, r7, r14 @ -a[3] * (*(temp_p -3)) 15617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 15717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r9, [r10, #-10] @ *(temp_p - 5) 15817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 15917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABT r14, r11, r7, r14 @ -a[4] * (*(temp_p -4)) 16017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 16117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDR r7, [r13, #-12] @ -a[6] -a[5] 16217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r12, [r10, #-12] @ *(temp_p - 6) 16317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 16417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABB r14, r9, r7, r14 @ -a[5] * (*(temp_p -5)) 16517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 16617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r6, [r10, #-14] @ *(temp_p - 7) 16717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 16817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABT r14, r12, r7, r14 @ -a[6] * (*(temp_p - 6)) 16917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 17017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDR r7, [r13, #-16] @ -a[8] -a[7] 17117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r11, [r10, #-16] @ *(temp_p - 8) 17217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 17317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABB r14, r6, r7, r14 @ -a[7] * (*(temp_p -7)) 17417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 17517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r9, [r10, #-18] @ *(temp_p - 9) 17617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 17717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABT r14, r11, r7, r14 @ -a[8] * (*(temp_p -8)) 17817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 17917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDR r7, [r13, #-20] @ -a[10] -a[9] 18017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r12, [r10, #-20] @ *(temp_p - 10) 18117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 18217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABB r14, r9, r7, r14 @ -a[9] * (*(temp_p -9)) 18317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 18417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r6, [r10, #-22] @ *(temp_p - 11) 18517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 18617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABT r14, r12, r7, r14 @ -a[10] * (*(temp_p - 10)) 18717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 18817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDR r7, [r13, #-24] @ -a[12] -a[11] 18917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r11, [r10, #-24] @ *(temp_p - 12) 19017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 19117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABB r14, r6, r7, r14 @ -a[11] * (*(temp_p -11)) 19217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 19317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r9, [r10, #-26] @ *(temp_p - 13) 19417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 19517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABT r14, r11, r7, r14 @ -a[12] * (*(temp_p -12)) 19617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 19717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDR r7, [r13, #-28] @ -a[14] -a[13] 19817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r12, [r10, #-28] @ *(temp_p - 14) 19917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 20017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABB r14, r9, r7, r14 @ -a[13] * (*(temp_p -13)) 20117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 20217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r6, [r10, #-30] @ *(temp_p - 15) 20317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 20417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABT r14, r12, r7, r14 @ -a[14] * (*(temp_p - 14)) 20517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 20617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDR r7, [r13, #-32] @ -a[16] -a[15] 20717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDRSH r11, [r10, #-32] @ *(temp_p - 16) 20817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 20917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABB r14, r6, r7, r14 @ -a[15] * (*(temp_p -15)) 21017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 21117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong SMLABT r14, r11, r7, r14 @ -a[16] * (*(temp_p -16)) 21217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 21317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong RSB r14, r14, r0 21417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 21517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong MOV r7, r14, LSL #4 @ L_tmp <<=4 21617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ADD r8, r8, #1 21717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ADD r14, r7, #0x8000 21817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong MOV r7, r14, ASR #16 @ (L_tmp + 0x8000) >> 16 21917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong CMP r8, #80 22017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r7, [r10] @ yy[i] 22117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong STRH r7, [r2], #2 @ y[i] 22217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong BLT LOOP 22317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 22417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong @ update mem[] 22517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ADD r5, r13, #160 @ yy[64] address 22617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong MOV r1, r3 22717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong MOV r0, r5 22817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong MOV r2, #16 22917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong BL voAWB_Copy 23017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 23117299ab50ceb70d904e610e3b2d7fb2361a11e03James DongSyn_filt_asm_end: 23217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 23317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ADD r13, r13, #700 23417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong LDMFD r13!, {r4 - r12, r15} 23517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong @ENDFUNC 23617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong .END 23717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 23817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 239