Home | History | Annotate | Download | only in ARMV5E
      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 
     28 CalcBandEnergy:
     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 
     39 L22:
     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 
     48 L23:
     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 
     68 L28:
     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 
     77 L212:
     78 	str     r9, [r12, #0]
     79 	ldmia   sp!, {r4 - r11, pc}
     80 
     81 	@ENDP  ; |CalcBandEnergy|
     82 
     83 	.global	CalcBandEnergyMS
     84 
     85 CalcBandEnergyMS:
     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 
     97 L32:
     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 
    112 L33:
    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]
    177 L39:
    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 
    194 L315:
    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