@/****************************************************************************** @ * @ * Copyright (C) 2018 The Android Open Source Project @ * @ * Licensed under the Apache License, Version 2.0 (the "License"); @ * you may not use this file except in compliance with the License. @ * You may obtain a copy of the License at: @ * @ * http://www.apache.org/licenses/LICENSE-2.0 @ * @ * Unless required by applicable law or agreed to in writing, software @ * distributed under the License is distributed on an "AS IS" BASIS, @ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @ * See the License for the specific language governing permissions and @ * limitations under the License. @ * @ ***************************************************************************** @ * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore @*/ .text .p2align 2 .global ixheaacd_harm_idx_zerotwolp_armv7 ixheaacd_harm_idx_zerotwolp_armv7: STMFD sp!, {r4-r12} SUB r5, r2, #1 MOV r2, #-1 LDR r6, [sp, #52] LDR r12, [sp, #48] ADD r10, sp, #36 LDR r4, [sp, #44] LDMIA r10, {r9, r10} CMP r4, #0 BLE EXIT CMP r12, #0 BNE NO_NOISE LOOP1: LDR r12, [r0, #0] LDRSH r7, [r1], #2 LDRSH r8, [r1], #2 ADD r2, r2, #1 SMULWB r7, r12, r7 SUBS r8, r8, r5 LDRH r12, [r3], #4 RSBLE r8, r8, #0 MOVLE r8, r7, ASR r8 MOVGT r8, r7, LSL r8 MOVS r12, r12, LSL #16 BEQ NEXT CMP r6, #0 QADDEQ r8, r8, r12 QSUBNE r8, r8, r12 SUBS r4, r4, #1 B STORE NEXT: LDR r7, [r9, r2, LSL #2] ADD r12, r10, r2, LSL #2 LDRSH r12, [r12, #0] SUBS r4, r4, #1 SMULTB r7, r7, r12 ADD r8, r8, r7, LSL #1 STORE: STR r8, [r0], #4 BGT LOOP1 B EXIT NO_NOISE: LOOP2: LDR r12, [r0, #0] LDRSH r7, [r1], #2 LDRSH r9, [r1], #2 LDRH r10, [r3], #4 SMULWB r7, r12, r7 SUBS r9, r9, r5 RSBMI r9, r9, #0 MOVMI r12, r7, ASR r9 MOVPL r12, r7, LSL r9 MOV r7, r10, LSL #16 CMP r6, #0 QADDEQ r12, r12, r7 QSUBNE r12, r12, r7 SUBS r4, r4, #1 STR r12, [r0], #4 BGT LOOP2 EXIT: LDMFD sp!, {r4-r12} BX lr