band_nrg_v5.s revision b676a05348e4c516fa8b57e33b10548e6142c3f8
1@/*
2@ ** Copyright 2003-2010, VisualOn, Inc.
3@ **
4@ ** Licensed under the Apache License, Version 2.0 (the "License");
5@ ** you may not use this file except in compliance with the License.
6@ ** You may obtain a copy of the License at
7@ **
8@ **     http://www.apache.org/licenses/LICENSE-2.0
9@ **
10@ ** Unless required by applicable law or agreed to in writing, software
11@ ** distributed under the License is distributed on an "AS IS" BASIS,
12@ ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13@ ** See the License for the specific language governing permissions and
14@ ** limitations under the License.
15@ */
16
17@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
18@	File:		band_nrg_v5.s
19@
20@	Content:	CalcBandEnergy and CalcBandEnergyMS function armv5 assemble
21@
22@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
23
24	.section .text
25
26	.global	CalcBandEnergy
27
28CalcBandEnergy:
29	stmdb   sp!, {r4 - r11, lr}
30
31  mov     r2, r2, lsl #16
32	ldr     r12, [r13, #36]
33	mov			r9, #0
34  mov     r5, r2, asr #16
35	mov			r4, #0
36  cmp     r5, #0
37	ble     L212
38
39L22:
40  mov     r2, r4, lsl #1
41  ldrsh   r10, [r1, r2]
42  add     r11, r1, r2
43  ldrsh   r2, [r11, #2]
44	mov     r14, #0
45  cmp     r10, r2
46  bge     L28
47
48L23:
49	ldr     r11, [r0, +r10, lsl #2]
50  add     r10, r10, #1
51	ldr     r6, [r0, +r10, lsl #2]
52	smull   r11, r7, r11, r11
53	add     r10, r10, #1
54	smull	  r6, r8, r6, r6
55	ldr     r11, [r0, +r10, lsl #2]
56	qadd	  r14, r14, r7
57	add     r10, r10, #1
58	smull	  r11, r7, r11, r11
59	ldr     r6, [r0, +r10, lsl #2]
60	qadd	  r14, r14, r8
61	smull	  r6, r8, r6, r6
62  add     r10, r10, #1
63	qadd	  r14, r14, r7
64	cmp     r10, r2
65	qadd	  r14, r14, r8
66	blt     L23
67
68L28:
69	qadd	  r14, r14, r14
70	str     r14, [r3, +r4, lsl #2]
71	add     r4, r4, #1
72	qadd	  r9, r9, r14
73	cmp     r4, r5
74
75  blt     L22
76
77L212:
78	str     r9, [r12, #0]
79	ldmia   sp!, {r4 - r11, pc}
80
81	@ENDP  ; |CalcBandEnergy|
82
83	.global	CalcBandEnergyMS
84
85CalcBandEnergyMS:
86	stmdb   sp!, {r4 - r11, lr}
87	sub     r13, r13, #24
88
89	mov     r12, #0
90  mov     r3, r3, lsl #16
91  mov     r14, #0
92	mov     r3, r3, asr #16
93	cmp     r3, #0
94	mov		  r4, #0
95  ble     L315
96
97L32:
98	mov		  r5, r4, lsl #1
99	mov		  r6, #0
100	ldrsh   r10, [r2, r5]
101	add     r5, r2, r5
102	mov		  r7, #0
103	ldrsh	  r11, [r5, #2]
104	cmp     r10, r11
105  bge     L39
106
107	str		  r3, [r13, #4]
108	str		  r4, [r13, #8]
109	str		  r12, [r13, #12]
110	str		  r14, [r13, #16]
111
112L33:
113	ldr     r8, [r0, +r10, lsl #2]
114	ldr     r9, [r1, +r10, lsl #2]
115	mov		  r8, r8, asr #1
116	add		  r10, r10, #1
117	mov		  r9, r9, asr #1
118
119	ldr     r12, [r0, +r10, lsl #2]
120	add		  r5, r8, r9
121	ldr     r14, [r1, +r10, lsl #2]
122	sub		  r8, r8, r9
123
124	smull   r5, r3, r5, r5
125	mov		  r12, r12, asr #1
126	smull   r8, r4, r8, r8
127	mov		  r14, r14, asr #1
128
129	qadd	  r6, r6, r3
130	add		  r5, r12, r14
131	qadd	  r7, r7, r4
132	sub		  r8, r12, r14
133
134	smull   r5, r3, r5, r5
135	add		  r10, r10, #1
136	smull   r8, r4, r8, r8
137
138	qadd	  r6, r6, r3
139	qadd	  r7, r7, r4
140
141	ldr     r8, [r0, +r10, lsl #2]
142	ldr     r9, [r1, +r10, lsl #2]
143	mov		  r8, r8, asr #1
144	add		  r10, r10, #1
145	mov		  r9, r9, asr #1
146
147	ldr     r12, [r0, +r10, lsl #2]
148	add		  r5, r8, r9
149	ldr     r14, [r1, +r10, lsl #2]
150	sub		  r8, r8, r9
151
152	smull   r5, r3, r5, r5
153	mov		  r12, r12, asr #1
154	smull   r8, r4, r8, r8
155	mov		  r14, r14, asr #1
156
157	qadd	  r6, r6, r3
158	add		  r5, r12, r14
159	qadd	  r7, r7, r4
160	sub		  r8, r12, r14
161
162	smull   r5, r3, r5, r5
163	add		  r10, r10, #1
164	smull   r8, r4, r8, r8
165
166	qadd	  r6, r6, r3
167	qadd	  r7, r7, r4
168
169	cmp     r10, r11
170
171	blt		  L33
172
173	ldr		  r3, [r13, #4]
174	ldr		  r4, [r13, #8]
175	ldr		  r12, [r13, #12]
176	ldr		  r14, [r13, #16]
177L39:
178	qadd	  r6, r6, r6
179	qadd	  r7, r7, r7
180
181	ldr		  r8, [r13, #60]
182	ldr		  r9, [r13, #68]
183
184	qadd	  r12, r12, r6
185	qadd	  r14, r14, r7
186
187	str		  r6, [r8, +r4, lsl #2]
188	str     r7, [r9, +r4, lsl #2]
189
190	add		  r4, r4, #1
191	cmp		  r4, r3
192	blt     L32
193
194L315:
195	ldr		  r8, [r13, #64]
196	ldr		  r9, [r13, #72]
197	str		  r12, [r8, #0]
198	str		  r14, [r9, #0]
199
200	add     r13, r13, #24
201	ldmia   sp!, {r4 - r11, pc}
202	@ENDP  ; |CalcBandEnergyMS|
203
204	.end
205