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.global ixheaacd_calc_max_spectral_line_armv8 24ixheaacd_calc_max_spectral_line_armv8: 25 26 LSR W4, W1, #3 27 LSL W6, W4, #3 28 MOV w11, #0x00000000 29 MOV V3.S[0], w11 30 MOV V3.S[1], w11 31 MOV V3.S[2], w11 32 MOV V3.S[3], w11 33 34LOOP_1: 35 LD1 {V0.4S}, [X0], #16 36 LD1 {V1.4S}, [X0], #16 37 38 ABS V0.4S, V0.4S 39 ABS V1.4S, V1.4S 40 41 SUBS W4, W4, #1 42 43 ORR V3.16B, V0.16B, V3.16B 44 ORR V3.16B, V1.16B, V3.16B 45 46 BGT LOOP_1 47 48 SUBS W7, W1, W6 49 50 MOV W4, V3.S[0] 51 MOV W1, V3.S[1] 52 MOV W2, V3.S[2] 53 ORR W4, W4, W1 54 MOV W3, V3.S[3] 55 ORR W4, W4, W2 56 ORR W4, W4, W3 57 BEQ END_FUNC 58LOOP_2: 59 60 LDR W2, [X0], #4 61 62 CMP W2, #0 63 64 CNEG W2, W2, LE 65 ORR W4, W4, W2 66 SUBS W7, W7, #1 67 BGT LOOP_2 68 69END_FUNC: 70 71 MOV W0, W4 72 CMP W0, #0 73 74 CNEG W0, W0, LE 75 CLZ W0, W0 76 SUB W0, W0, #1 77 78 RET 79 80 81 82 83