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.global ixheaacd_mps_mulshift 25 26ixheaacd_mps_mulshift: 27 28 STMFD sp!, {R4-R12} 29 VPUSH {d8 - d15} 30LOOP: 31 VLD1.32 {Q0, Q1}, [R0]! @LOADING values from R0 32 VLD1.32 {Q2, Q3}, [R1]! @LOADING values from R1 33 VQDMULL.S32 Q4, D0, D4 34 VQDMULL.S32 Q5, D2, D6 35 VQDMULL.S32 Q6, D1, D5 36 VQDMULL.S32 Q7, D3, D7 37 VUZP.32 Q4, Q6 38 VUZP.32 Q5, Q7 39 VST1.32 {Q6, Q7}, [R2]! @Storing values to R2 40 SUBS R3, R3, #8 41 BGT LOOP 42 43 VPOP {d8 - d15} 44 LDMFD sp!, {R4-R12} 45 BX LR 46 47