1@/****************************************************************************** 2@ * 3@ * Copyright (C) 2018 The Android Open Source Project 4@ * 5@ * Licensed under the Apache License, Version 2.0 (the "License"); 6@ * you may not use this file except in compliance with the License. 7@ * You may obtain a copy of the License at: 8@ * 9@ * http:@www.apache.org/licenses/LICENSE-2.0 10@ * 11@ * Unless required by applicable law or agreed to in writing, software 12@ * distributed under the License is distributed on an "AS IS" BASIS, 13@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14@ * See the License for the specific language governing permissions and 15@ * limitations under the License. 16@ * 17@ ***************************************************************************** 18@ * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19@*/ 20 21 22.text 23.p2align 2 24 25 .global ixheaacd_mps_synt_post_fft_twiddle_armv7 26ixheaacd_mps_synt_post_fft_twiddle_armv7: 27 28 STMFD sp!, {r4-r12, r14} 29 VPUSH {D8-D15} 30 LDR R4, [SP, #104] 31 LDR R5, [SP, #108] 32 33 ADD R6, R5, R0, LSL #3 34 LSL R7, R0, #1 35 MOV R8, #-16 36 ADD R6, R6, R8 37LOOP1: 38 VLD1.32 {D0, D1}, [R1]! 39 VLD1.32 {D2, D3}, [R2]! 40 VLD1.32 {D4, D5}, [R3]! 41 VLD1.32 {D6, D7}, [R4]! 42 43 VMULL.S32 Q4, D0, D4 44 VMULL.S32 Q5, D2, D6 45 VMULL.S32 Q6, D1, D5 46 VMULL.S32 Q7, D3, D7 47 48 VSHRN.S64 D8, Q4, #31 49 VSHRN.S64 D10, Q5, #31 50 VSHRN.S64 D12, Q6, #31 51 VSHRN.S64 D14, Q7, #31 52 53 VQADD.S32 D1, D8, D10 54 VQADD.S32 D0, D12, D14 55 56 VREV64.32 D1, D1 57 VREV64.32 D0, D0 58 59 60 SUBS R7, R7, #4 61 VST1.32 {D0, D1}, [R6], R8 62 63 BGT LOOP1 64 VPOP {D8-D15} 65 LDMFD sp!, {r4-r12, r15} 66