@/* @ ** Copyright 2003-2010, VisualOn, Inc. @ ** @ ** Licensed under the Apache License, Version 2.0 (the "License"); @ ** you may not use this file except in compliance with the License. @ ** You may obtain a copy of the License at @ ** @ ** http://www.apache.org/licenses/LICENSE-2.0 @ ** @ ** Unless required by applicable law or agreed to in writing, software @ ** distributed under the License is distributed on an "AS IS" BASIS, @ ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @ ** See the License for the specific language governing permissions and @ ** limitations under the License. @ */ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ File: PrePostMDCT_v5.s @ @ Content: premdct and postmdct function armv5 assemble @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ .section .text .global PreMDCT PreMDCT: stmdb sp!, {r4 - r11, lr} add r9, r0, r1, lsl #2 sub r3, r9, #8 movs r1, r1, asr #2 beq PreMDCT_END PreMDCT_LOOP: ldr r8, [r2], #4 ldr r9, [r2], #4 ldrd r4, [r0] ldrd r6, [r3] smull r14, r11, r4, r8 @ MULHIGH(tr1, cosa) smull r10, r12, r7, r8 @ MULHIGH(ti1, cosa) smull r14, r8, r7, r9 @ MULHIGH(ti1, sina) smull r7, r10, r4, r9 @ MULHIGH(tr1, sina) add r11, r11, r8 @ MULHIGH(cosa, tr1) + MULHIGH(sina, ti1)@ sub r7, r12, r10 @ MULHIGH(ti1, cosa) - MULHIGH(tr1, sina) ldr r8, [r2], #4 ldr r9, [r2], #4 smull r14, r4, r6, r8 @ MULHIGH(tr2, cosa) smull r10, r12, r5, r8 @ MULHIGH(ti2, cosa) smull r14, r8, r5, r9 @ MULHIGH(ti2, sina) smull r5, r10, r6, r9 @ MULHIGH(tr2, sina) add r8, r8, r4 sub r9, r12, r10 mov r6, r11 strd r6, [r0] strd r8, [r3] subs r1, r1, #1 sub r3, r3, #8 add r0, r0, #8 bne PreMDCT_LOOP PreMDCT_END: ldmia sp!, {r4 - r11, pc} @ENDP @ |PreMDCT| .section .text .global PostMDCT PostMDCT: stmdb sp!, {r4 - r11, lr} add r9, r0, r1, lsl #2 sub r3, r9, #8 movs r1, r1, asr #2 beq PostMDCT_END PostMDCT_LOOP: ldr r8, [r2], #4 ldr r9, [r2], #4 ldrd r4, [r0] ldrd r6, [r3] smull r14, r11, r4, r8 @ MULHIGH(tr1, cosa) smull r10, r12, r5, r8 @ MULHIGH(ti1, cosa) smull r14, r8, r5, r9 @ MULHIGH(ti1, sina) smull r5, r10, r4, r9 @ MULHIGH(tr1, sina) add r4, r11, r8 @ MULHIGH(cosa, tr1) + MULHIGH(sina, ti1)@ sub r11, r10, r12 @ MULHIGH(ti1, cosa) - MULHIGH(tr1, sina)@ ldr r8, [r2], #4 @ ldr r9, [r2], #4 smull r14, r5, r6, r8 @ MULHIGH(tr2, cosa) smull r10, r12, r7, r8 @ MULHIGH(ti2, cosa) smull r14, r8, r7, r9 @ MULHIGH(ti2, sina) smull r7, r10, r6, r9 @ MULHIGH(tr2, sina) add r6, r8, r5 @ MULHIGH(cosb, tr2) + MULHIGH(sinb, ti2)@ sub r5, r10, r12 @ MULHIGH(sinb, tr2) - MULHIGH(cosb, ti2)@ mov r7, r11 strd r4, [r0] strd r6, [r3] subs r1, r1, #1 sub r3, r3, #8 add r0, r0, #8 bne PostMDCT_LOOP PostMDCT_END: ldmia sp!, {r4 - r11, pc} @ENDP @ |PostMDCT| .end