1*15dc779aSAndroid Build Coastguard Worker@/****************************************************************************** 2*15dc779aSAndroid Build Coastguard Worker@ * 3*15dc779aSAndroid Build Coastguard Worker@ * Copyright (C) 2018 The Android Open Source Project 4*15dc779aSAndroid Build Coastguard Worker@ * 5*15dc779aSAndroid Build Coastguard Worker@ * Licensed under the Apache License, Version 2.0 (the "License"); 6*15dc779aSAndroid Build Coastguard Worker@ * you may not use this file except in compliance with the License. 7*15dc779aSAndroid Build Coastguard Worker@ * You may obtain a copy of the License at: 8*15dc779aSAndroid Build Coastguard Worker@ * 9*15dc779aSAndroid Build Coastguard Worker@ * http://www.apache.org/licenses/LICENSE-2.0 10*15dc779aSAndroid Build Coastguard Worker@ * 11*15dc779aSAndroid Build Coastguard Worker@ * Unless required by applicable law or agreed to in writing, software 12*15dc779aSAndroid Build Coastguard Worker@ * distributed under the License is distributed on an "AS IS" BASIS, 13*15dc779aSAndroid Build Coastguard Worker@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*15dc779aSAndroid Build Coastguard Worker@ * See the License for the specific language governing permissions and 15*15dc779aSAndroid Build Coastguard Worker@ * limitations under the License. 16*15dc779aSAndroid Build Coastguard Worker@ * 17*15dc779aSAndroid Build Coastguard Worker@ ***************************************************************************** 18*15dc779aSAndroid Build Coastguard Worker@ * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19*15dc779aSAndroid Build Coastguard Worker@*/ 20*15dc779aSAndroid Build Coastguard Worker 21*15dc779aSAndroid Build Coastguard Worker 22*15dc779aSAndroid Build Coastguard Worker.text 23*15dc779aSAndroid Build Coastguard Worker.p2align 2 24*15dc779aSAndroid Build Coastguard Worker 25*15dc779aSAndroid Build Coastguard Worker .global ixheaacd_overlap_out_copy_armv7 26*15dc779aSAndroid Build Coastguard Worker .global ixheaacd_spec_to_overlapbuf_armv7 27*15dc779aSAndroid Build Coastguard Worker .global ixheaacd_overlap_buf_out_armv7 28*15dc779aSAndroid Build Coastguard Worker 29*15dc779aSAndroid Build Coastguard Workerixheaacd_overlap_buf_out_armv7: 30*15dc779aSAndroid Build Coastguard Worker 31*15dc779aSAndroid Build Coastguard Worker STMFD sp!, {r4-r5} 32*15dc779aSAndroid Build Coastguard Worker MOV r3, r3, lsl #2 33*15dc779aSAndroid Build Coastguard Worker 34*15dc779aSAndroid Build Coastguard WorkerOUTSAMPLE_LOOP: 35*15dc779aSAndroid Build Coastguard Worker 36*15dc779aSAndroid Build Coastguard Worker LDR r4, [r1], #4 37*15dc779aSAndroid Build Coastguard Worker LDR r5, [r1], #4 38*15dc779aSAndroid Build Coastguard Worker SUBS r2, r2, #2 39*15dc779aSAndroid Build Coastguard Worker 40*15dc779aSAndroid Build Coastguard Worker LSL r4,r4,#15 41*15dc779aSAndroid Build Coastguard Worker LSL r5,r5,#15 42*15dc779aSAndroid Build Coastguard Worker 43*15dc779aSAndroid Build Coastguard Worker STR r4, [r0], r3 44*15dc779aSAndroid Build Coastguard Worker STR r5, [r0], r3 45*15dc779aSAndroid Build Coastguard Worker 46*15dc779aSAndroid Build Coastguard Worker BGT OUTSAMPLE_LOOP 47*15dc779aSAndroid Build Coastguard Worker 48*15dc779aSAndroid Build Coastguard Worker LDMFD sp!, {r4-r5} 49*15dc779aSAndroid Build Coastguard Worker BX lr 50*15dc779aSAndroid Build Coastguard Worker 51*15dc779aSAndroid Build Coastguard Worker 52*15dc779aSAndroid Build Coastguard Workerixheaacd_overlap_out_copy_armv7: 53*15dc779aSAndroid Build Coastguard Worker 54*15dc779aSAndroid Build Coastguard Worker STMFD sp!, {r4-r9, r14} 55*15dc779aSAndroid Build Coastguard Worker MOV r9, #32 56*15dc779aSAndroid Build Coastguard Worker MOV r8, r1 57*15dc779aSAndroid Build Coastguard Worker MOV r3, r3, LSL #2 58*15dc779aSAndroid Build Coastguard Worker 59*15dc779aSAndroid Build Coastguard Worker 60*15dc779aSAndroid Build Coastguard WorkerOUT_OVERLAP_LOOP: 61*15dc779aSAndroid Build Coastguard Worker LDR r4, [r1], #4 62*15dc779aSAndroid Build Coastguard Worker LDR r5, [r1], #4 63*15dc779aSAndroid Build Coastguard Worker SUBS r9, r9, #1 64*15dc779aSAndroid Build Coastguard Worker 65*15dc779aSAndroid Build Coastguard Worker LSL r4,r4,#15 66*15dc779aSAndroid Build Coastguard Worker LSL r5,r5,#15 67*15dc779aSAndroid Build Coastguard Worker 68*15dc779aSAndroid Build Coastguard Worker LDR r6, [r2], #4 69*15dc779aSAndroid Build Coastguard Worker LDR r7, [r2], #4 70*15dc779aSAndroid Build Coastguard Worker 71*15dc779aSAndroid Build Coastguard Worker STR r4, [r0], r3 72*15dc779aSAndroid Build Coastguard Worker STR r5, [r0], r3 73*15dc779aSAndroid Build Coastguard Worker 74*15dc779aSAndroid Build Coastguard Worker STR r6, [r8], #4 75*15dc779aSAndroid Build Coastguard Worker STR r7, [r8], #4 76*15dc779aSAndroid Build Coastguard Worker 77*15dc779aSAndroid Build Coastguard Worker BGT OUT_OVERLAP_LOOP 78*15dc779aSAndroid Build Coastguard Worker 79*15dc779aSAndroid Build Coastguard Worker LDMFD sp!, {r4-r9, r15} 80*15dc779aSAndroid Build Coastguard Worker 81*15dc779aSAndroid Build Coastguard Worker 82*15dc779aSAndroid Build Coastguard Worker 83*15dc779aSAndroid Build Coastguard Worker 84*15dc779aSAndroid Build Coastguard Workerixheaacd_spec_to_overlapbuf_armv7: 85*15dc779aSAndroid Build Coastguard Worker 86*15dc779aSAndroid Build Coastguard Worker STMFD sp!, {r4-r10, r14} 87*15dc779aSAndroid Build Coastguard Worker 88*15dc779aSAndroid Build Coastguard Worker MOV r6, #1 89*15dc779aSAndroid Build Coastguard Worker RSB r2, r2, #16 90*15dc779aSAndroid Build Coastguard Worker AND r2, r2, #0xFF 91*15dc779aSAndroid Build Coastguard Worker SUB r7, r2, #1 92*15dc779aSAndroid Build Coastguard Worker LSL r14, r6, r7 93*15dc779aSAndroid Build Coastguard Worker MOV r3, r3, ASR #1 94*15dc779aSAndroid Build Coastguard Worker 95*15dc779aSAndroid Build Coastguard WorkerOVERLAP_LOOP1: 96*15dc779aSAndroid Build Coastguard Worker 97*15dc779aSAndroid Build Coastguard Worker 98*15dc779aSAndroid Build Coastguard Worker LDMIA r1!, {r4-r5} 99*15dc779aSAndroid Build Coastguard Worker SUBS r3, r3, #1 100*15dc779aSAndroid Build Coastguard Worker 101*15dc779aSAndroid Build Coastguard Worker QADD r4, r4, r14 102*15dc779aSAndroid Build Coastguard Worker QADD r5, r5, r14 103*15dc779aSAndroid Build Coastguard Worker 104*15dc779aSAndroid Build Coastguard Worker MOV r4, r4, ASR r2 105*15dc779aSAndroid Build Coastguard Worker MOV r5, r5, ASR r2 106*15dc779aSAndroid Build Coastguard Worker 107*15dc779aSAndroid Build Coastguard Worker STR r4, [r0], #4 108*15dc779aSAndroid Build Coastguard Worker STR r5, [r0], #4 109*15dc779aSAndroid Build Coastguard Worker 110*15dc779aSAndroid Build Coastguard Worker 111*15dc779aSAndroid Build Coastguard Worker BGT OVERLAP_LOOP1 112*15dc779aSAndroid Build Coastguard Worker LDMFD sp!, {r4-r10, pc} 113*15dc779aSAndroid Build Coastguard Worker 114