summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/aacenc/src/asm/ARMV5E/AutoCorrelation_v5.s
blob: 48edd4ff6003defd6587a3d09e5daf8bbe064a16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
@/*
@ ** Copyright 2003-2010, VisualOn, Inc.
@ **
@ ** 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.
@ */

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@	File:		AutoCorrelation_v5.s
@
@	Content:	AutoCorrelation function armv5 assemble
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


	.section .text	
	.global	AutoCorrelation

AutoCorrelation:
	stmdb     sp!, {r4 - r11, lr}

  sub     r13, r13, #20                     

  mov     r5, r0                            
  mov     r7, r1                            
  mov     r9, r3                            
  mov     r2, r2, lsl #16                      
  mov     r0, #0          
  mov     r4, r2, asr #16                   
  mov     r8, #0                            
  cmp     r4, #0                            
  ble     L136        
	
	cmp     r4, #8 
	mov		  r2, #0 
  blt     L133   

	sub     r12, r4, #8                
L132:  
  ldr     r6, [r5, r2]  
	add		  r2, r2, #4
	smulbb  r3, r6, r6
	ldr     r1, [r5, r2] 
	smultt	r10, r6, r6
	mov		  r3, r3, asr #9
	smulbb	r6, r1, r1
	mov		  r10, r10, asr #9
	qadd	  r0, r0, r3
	smultt	r11, r1, r1
	add     r2, r2, #4
	qadd	  r0, r0, r10
	mov		  r6, r6, asr #9
	mov		  r11, r11, asr #9
	ldr		  r1, [r5, r2]
	qadd	  r0, r0, r6
	smulbb	r10, r1, r1
	smultt	r6, r1, r1
	qadd	  r0, r0, r11
	mov		  r10, r10, asr #9
	mov		  r6, r6, asr #9
	qadd	  r0, r0, r10
	add     r2, r2, #4
	add     r8, r8, #6

	qadd	  r0, r0, r6
	cmp     r8, r12                            
  blt     L132	                  
L133:                         
  ldrsh   r6, [r5, r2]                      
  mul     r10, r6, r6   
	add     r2, r2, #2                     
  mov     r1, r10, asr #9                    
  qadd    r0, r0, r1
L134:                         
  add     r8, r8, #1                        
  cmp     r8, r4                            
  blt     L133                            
L135:                        
L136:                         
  str     r0, [r7, #0]                      
  cmp     r0, #0                            
  beq     L1320                           
L137:                         
  mov     r2, r9, lsl #16                   
	mov     r8, #1                                
  mov     r2, r2, asr #16                   
  cmp     r2, #1                            
  ble     L1319                           
L138:                        
L139:                         
  sub     r4, r4, #1                        
  mov     r14, #0                           
  mov     r3, #0                            
  cmp     r4, #0                            
  ble     L1317                           
L1310:                       
  cmp     r4, #6                            
  addlt   r6, r5, r8, lsl #1                
  blt     L1314                           
L1311:                        
  add     r6, r5, r8, lsl #1                
  sub     r12, r4, #6                       
  str     r8, [r13, #8]                     
  str     r7, [r13, #4]                     
L1312:                        
  mov     r1, r3, lsl #1                    
  ldrsh   r7, [r6, r1]                      
  ldrsh   r10, [r5, r1]  
  add     r8, r1, r6 
	add     r9, r5, r1                       
	mul     r7, r10, r7
  ldrsh   r1, [r8, #2] 
	ldrsh   r10, [r8, #4]   
  add     r7, r14, r7, asr #9  	                                             
  ldrsh   r0, [r9, #2]                          
  ldrsh   r11, [r9, #4]                   
  mul     r1, r0, r1                        
  ldrsh   r14, [r8, #6]                     
  mul     r10, r11, r10          
	add     r7, r7, r1, asr #9            
  ldrsh   r8, [r8, #8] 
	add     r3, r3, #5
	ldrsh   r11, [r9, #6]                  
  ldrsh   r1, [r9, #8]                      
  mul     r14, r11, r14                     
  add     r7, r7, r10, asr #9       
  mul     r1, r1, r8                             
  add     r14, r7, r14, asr #9              
	cmp     r3, r12 
  add     r14, r14, r1, asr #9              
  ble     L1312                           
L1313:                        
  ldr     r8, [r13, #8]                     
  ldr     r7, [r13, #4]                     
L1314:                        
L1315:                        
  mov     r12, r3, lsl #1                   
  ldrsh   r9, [r6, r12]                     
  ldrsh   r12, [r5, r12]                    
  add     r3, r3, #1                        
  cmp     r3, r4                            
  mul     r12, r12, r9                      
  add     r14, r14, r12, asr #9             
  blt     L1315                           
L1316:                        
L1317:                        
  str     r14, [r7, +r8, lsl #2]            
  add     r8, r8, #1                        
  cmp     r8, r2                            
  blt     L139   
	                         
L1319:
L1320:
	add     r13, r13, #20                    
	ldmia   sp!, {r4 - r11, pc}

	@ENDP  @ |AutoCorrelation|
	.end