164 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| @/******************************************************************************
 | |
| @ *
 | |
| @ * 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_inv_dit_fft_8pt_armv7
 | |
| 
 | |
| ixheaacd_inv_dit_fft_8pt_armv7:
 | |
| 
 | |
| 
 | |
|     STMFD           sp!, {r4-r12, lr}
 | |
|     LDR             r3, [r0, #0]
 | |
|     LDR             r4, [r0, #0x20]
 | |
|     LDR             r5, [r0, #0x24]
 | |
|     QADD            r12, r3, r4
 | |
|     LDR             r6, [r0, #0x30]
 | |
|     QSUB            r8, r3, r4
 | |
|     LDR             r3, [r0, #4]
 | |
|     LDR             r9, [r0, #0x34]
 | |
|     QADD            r4, r3, r5
 | |
|     SUB             sp, sp, #0x14
 | |
|     QSUB            r5, r3, r5
 | |
|     LDR             lr, [r0, #0x10]
 | |
|     LDR             r3, [r0, #0x14]
 | |
|     QADD            r10, lr, r6
 | |
|     QSUB            r6, lr, r6
 | |
|     QADD            r7, r3, r9
 | |
|     QSUB            r9, r3, r9
 | |
| 
 | |
| 
 | |
|     QADD            r3, r12, r10
 | |
|     QSUB            lr, r12, r10
 | |
|     QADD            r12, r4, r7
 | |
|     QSUB            r7, r4, r7
 | |
|     QSUB            r4, r8, r9
 | |
| 
 | |
|     STR             r7, [sp, #8]
 | |
|     QADD            r7, r8, r9
 | |
|     QADD            r8, r5, r6
 | |
|     STR             r7, [sp, #0xc]
 | |
|     QSUB            r5, r5, r6
 | |
| 
 | |
|     STMIA           sp, {r8, lr}
 | |
|     STR             r5, [sp, #0x10]
 | |
| 
 | |
| 
 | |
| 
 | |
|     LDR             r5, [r0, #8]
 | |
|     LDR             lr, [r0, #0x28]
 | |
|     LDR             r9, [r0, #0x2c]
 | |
|     QADD            r7, r5, lr
 | |
|     LDR             r11, [r0, #0x38]
 | |
|     LDR             r6, [r0, #0xc]
 | |
|     QSUB            r5, r5, lr
 | |
|     LDR             lr, [r0, #0x18]
 | |
|     QADD            r8, r6, r9
 | |
|     QSUB            r6, r6, r9
 | |
| 
 | |
| 
 | |
| 
 | |
|     QADD            r10, lr, r11
 | |
|     QSUB            r9, lr, r11
 | |
|     LDR             r11, [r0, #0x1c]
 | |
|     LDR             r0, [r0, #0x3c]
 | |
| 
 | |
|     MOV             lr, r11
 | |
|     QADD            r11, r11, r0
 | |
|     QSUB            r0, lr, r0
 | |
| 
 | |
| 
 | |
|     QADD            lr, r7, r10
 | |
|     QSUB            r10, r7, r10
 | |
|     QADD            r7, r8, r11
 | |
|     QSUB            r11, r8, r11
 | |
| 
 | |
|     QSUB            r8, r5, r0
 | |
|     QADD            r5, r5, r0
 | |
|     QADD            r0, r6, r9
 | |
|     QSUB            r6, r6, r9
 | |
| 
 | |
| 
 | |
|     QADD            r9, r3, lr
 | |
|     QSUB            r3, r3, lr
 | |
|     STR             r9, [r1, #0]
 | |
| 
 | |
|     QADD            r9, r12, r7
 | |
|     LDR             lr, [sp, #4]
 | |
|     STR             r9, [r2, #0]
 | |
|     QSUB            r9, r12, r7
 | |
| 
 | |
| 
 | |
|     QSUB            r12, lr, r11
 | |
|     QADD            r11, lr, r11
 | |
|     LDR             lr, [sp, #8]
 | |
|     STR             r11, [r1, #0x10]
 | |
|     QADD            r7, lr, r10
 | |
|     QSUB            r10, lr, r10
 | |
| 
 | |
|     MOVW            r11, #0x00005a82
 | |
|     STR             r10, [r2, #0x10]
 | |
| 
 | |
|     QSUB            r10, r8, r0
 | |
|     QADD            r0, r8, r0
 | |
|     SMULWB          r10, r10, r11
 | |
|     SMULWB          r0, r0, r11
 | |
|     MOV             r10, r10, LSL #1
 | |
| 
 | |
|     QADD            r8, r4, r10
 | |
|     LDR             lr, [sp, #0]
 | |
| 
 | |
|     STR             r8, [r1, #4]
 | |
|     MOV             r0, r0, LSL #1
 | |
|     QADD            r8, lr, r0
 | |
| 
 | |
|     QSUB            r4, r4, r10
 | |
|     STR             r8, [r2, #4]
 | |
|     QSUB            r0, lr, r0
 | |
| 
 | |
|     QADD            r12, r12, r4
 | |
|     QADD            r0, r7, r0
 | |
|     STR             r12, [r1, #8]
 | |
|     STR             r0, [r2, #8]
 | |
| 
 | |
|     QADD            r0, r5, r6
 | |
|     LDR             r7, [sp, #0xc]
 | |
|     SMULWB          r0, r0, r11
 | |
| 
 | |
|     QSUB            r12, r5, r6
 | |
|     MOV             r0, r0, LSL #1
 | |
|     SMULWB          r12, r12, r11
 | |
|     LDR             r5, [sp, #0x10]
 | |
|     QSUB            r4, r7, r0
 | |
|     MOV             r12, r12, LSL #1
 | |
|     QADD            r10, r5, r12
 | |
|     QADD            r3, r3, r4
 | |
|     QADD            lr, r9, r10
 | |
|     QADD            r0, r7, r0
 | |
|     QSUB            r10, r5, r12
 | |
|     STR             r3, [r1, #0xc]
 | |
|     STR             lr, [r2, #0xc]
 | |
|     STR             r0, [r1, #0x14]
 | |
|     STR             r10, [r2, #0x14]
 | |
|     ADD             sp, sp, #0x14
 | |
|     LDMFD           sp!, {r4-r12, pc}
 | |
| 
 |