You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
2.8 KiB
110 lines
2.8 KiB
@/******************************************************************************
|
|
@ *
|
|
@ * 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
|
|
|
|
|