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_calc_max_spectral_line_armv7 25 26ixheaacd_calc_max_spectral_line_armv7: 27 28 STMFD sp!, {R4-R12, R14} 29 MOV R4, R1, LSR #3 30 MOV R6, R4, LSL #3 31 VMOV.S32 D6, #0x00000000 32 VMOV.S32 D7, #0x00000000 33 34LOOP_1: 35 VLD1.32 {D0, D1}, [R0]! 36 37 VLD1.32 {D2, D3}, [R0]! 38 VABS.S32 Q0, Q0 39 40 41 VABS.S32 Q1, Q1 42 SUBS R4, R4, #1 43 44 VORR Q3, Q0, Q3 45 46 VORR Q3, Q1, Q3 47 BGT LOOP_1 48 49 SUBS R7, R1, R6 50 51 VMOV.32 R4, D6[0] 52 VMOV.32 R1, D6[1] 53 VMOV.32 R2, D7[0] 54 ORR R4, R4, R1 55 VMOV.32 R3, D7[1] 56 ORR R4, R4, R2 57 58 59 ORR R4, R4, R3 60 BEQ END_FUNC 61LOOP_2: 62 63 LDR R2, [R0], #4 64 MOVS R2, R2 65 RSBMI R2, R2, #0 66 ORR R4, R4, R2 67 SUBS R7, R7, #1 68 BGT LOOP_2 69 70END_FUNC: 71 72 MOVS R0, R4 73 MVNMI R0, R0 74 CLZ R0, R0 75 SUB R0, R0, #1 76 77 LDMFD sp!, {R4-R12, R15} 78 79 80 81 82 83