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