1250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; ------------------------------------------------------------------ 2250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Copyright (C) 1998-2009 PacketVideo 3250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; 4250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Licensed under the Apache License, Version 2.0 (the "License"); 5250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; you may not use this file except in compliance with the License. 6250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; You may obtain a copy of the License at 7250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; 8250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; http://www.apache.org/licenses/LICENSE-2.0 9250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; 10250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Unless required by applicable law or agreed to in writing, software 11250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; distributed under the License is distributed on an "AS IS" BASIS, 12250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; express or implied. 14250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; See the License for the specific language governing permissions 15250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; and limitations under the License. 16250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; ------------------------------------------------------------------- 17250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 18250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; 19250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; 20250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Filename: pvmp3_dct_9.s 21250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; 22250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;------------------------------------------------------------------------------ 23250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; REVISION HISTORY 24250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; 25250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; 26250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Who: Date: MM/DD/YYYY 27250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Description: 28250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; 29250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;------------------------------------------------------------------------------ 30250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 31250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber AREA |.drectve|, DRECTVE 32250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 33250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber DCB "-defaultlib:coredll.lib " 34250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber DCB "-defaultlib:corelibc.lib " 35250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 36250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber IMPORT pvmp3_mdct_18 ; pvmp3_mdct_18.cpp 37250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 38250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;------------------------------------------------------------------------------ 39250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 40250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber AREA |.rdata|, DATA, READONLY 41250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber % 4 42250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 43250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 44250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;------------------------------------------------------------------------------ 45250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 46250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber AREA |.text|, CODE, READONLY 47250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 48250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 49250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;------------------------------------------------------------------------------ 50250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 51250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber EXPORT |pvmp3_dct_9| 52250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 53250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber|pvmp3_dct_9| PROC 54250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber stmfd sp!,{r4-r10,lr} 55250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r2, [r0, #0x20] 56250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r3, [r0] 57250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r12,[r0, #4] 58250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber add r1,r2,r3 59250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber sub lr,r2,r3 60250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r3,[r0, #0x1c] 61250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r4,[r0, #0x18] 62250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber add r2,r3,r12 63250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r5,[r0,#8] 64250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber sub r3,r3,r12 65250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber add r12,r4,r5 66250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber sub r4,r4,r5 67250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r5,[r0, #0x14] 68250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r7,[r0, #0xc] 69250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r9,[r0, #0x10] 70250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber add r6,r5,r7 71250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber sub r5,r5,r7 72250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber add r7,r1,r12 73250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber add r8,r9,r2 74250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber add r7,r7,r6 75250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber add r10,r7,r8 76250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber rsb r7,r8,r7,asr #1 77250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber str r7,[r0, #0x18] 78250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber rsb r2,r9,r2,asr #1 79250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber str r10,[r0] 80250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r11,|cos_2pi_9| 81250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber rsb r7,r2,#0 82250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 83250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber mov r9,r1,lsl #1 84250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber mov r1,r9 ;;;;;; !!!!!! 85250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber mov r8,r7 86250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 87250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[4] = fxp_mac32_Q32( vec[4], tmp0<<1, cos_2pi_9); 88250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 89250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r1,r8,r11,r9 90250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r10,|cos_4pi_9| 91250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r11,|cos_pi_9| 92250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 93250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[8] = fxp_mac32_Q32( vec[8], tmp0<<1, cos_4pi_9); 94250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 95250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r1,r7,r10,r9 96250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 97250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 98250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 99250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[2] = fxp_mac32_Q32( vec[2], tmp0<<1, cos_pi_9); 100250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 101250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r9,r2,r11,r9 102250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber mov r1,r12,lsl #1 103250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber rsb r9,r10,#0 104250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r11,|cos_5pi_9| 105250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 106250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r12,r2,r9,r1 107250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 108250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 109250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 110250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[2] = fxp_mac32_Q32( vec[2], tmp2<<1, cos_5pi_9); 111250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 112250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r9,|cos_2pi_9| 113250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber mov r12,r1 ;;;;;; !!!!!! 114250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r12,r8,r11,r1 115250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 116250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 117250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[8] = fxp_mac32_Q32( vec[8], tmp2<<1, cos_2pi_9); 118250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 119250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r1,r7,r9,r1 120250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber mov r1,r6,lsl #1 121250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r12,r7,r11,r1 122250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber and r6,r10,r11,asr #14 123250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r12,r8,r6,r1 124250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r10,|cos_11pi_18| 125250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber add r12,r11,r6 126250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r1,r2,r12,r1 127250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r9,|cos_8pi_9| 128250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber str r2,[r0,#8] 129250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber mov r1,r5,lsl #1 130250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 131250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[8] = fxp_mac32_Q32( vec[8], tmp3<<1, cos_8pi_9); 132250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 133250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smull r2,r6,r9,r1 134250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber str r7,[r0,#0x20] 135250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber mov r2,r4,lsl #1 136250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r7,|cos_13pi_18| 137250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r12,r6,r10,r2 138250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 139250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber mov r3,r3,lsl #1 140250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 141250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[5] = fxp_mac32_Q32( vec[5], tmp8<<1, cos_13pi_18); 142250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 143250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r12,r6,r7,r3 144250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber add r4,r5,r4 145250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber mov r12,lr,lsl #1 146250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber sub lr,r4,lr 147250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r7,|cos_17pi_18| 148250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber str r8,[r0, #0x10] 149250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldr r4,|cos_pi_6| 150250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 151250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber mov lr,lr,lsl #1 152250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 153250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[1] = fxp_mac32_Q32( vec[1], tmp8<<1, cos_17pi_18); 154250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 155250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r8,r6,r7,r12 156250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 157250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[3] = fxp_mul32_Q32((tmp5 + tmp6 - tmp8)<<1, cos_pi_6); 158250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 159250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smull r5,lr,r4,lr 160250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber str r6,[r0, #4] 161250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber str lr,[r0, #0xc] 162250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 163250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 164250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[5] = fxp_mul32_Q32(tmp5<<1, cos_17pi_18); 165250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smull r5,lr,r7,r1 166250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber rsb r6,r9,#0 167250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[5] = fxp_mac32_Q32( vec[5], tmp6<<1, cos_7pi_18); 168250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r5,lr,r6,r2 169250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[5] = fxp_mac32_Q32( vec[5], tmp7<<1, cos_pi_6); 170250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r5,lr,r4,r3 171250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[5] = fxp_mac32_Q32( vec[5], tmp8<<1, cos_13pi_18); 172250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r5,lr,r10,r12 173250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber str lr,[r0, #0x14] 174250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber rsb lr,r10,#0 175250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 176250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[7] = fxp_mul32_Q32(tmp5<<1, cos_5pi_18); 177250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smull r5,r1,lr,r1 178250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[7] = fxp_mac32_Q32( vec[7], tmp6<<1, cos_17pi_18); 179250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r2,r1,r7,r2 180250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[7] = fxp_mac32_Q32( vec[7], tmp7<<1, cos_pi_6); 181250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r3,r1,r4,r3 182250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; vec[7] = fxp_mac32_Q32( vec[7], tmp8<<1, cos_11pi_18); 183250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber smlal r12,r1,r9,r12 184250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber str r1,[r0, #0x1c] 185250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ldmfd sp!,{r4-r10,pc} 186250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber|cos_2pi_9| 187250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber DCD 0x620dbe80 188250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber|cos_4pi_9| 189250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber DCD 0x163a1a80 190250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber|cos_pi_9| 191250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber DCD 0x7847d900 192250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber|cos_5pi_9| 193250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber DCD 0x87b82700 194250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber|cos_8pi_9| 195250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber DCD 0xd438af00 196250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber|cos_11pi_18| 197250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber DCD 0xadb92280 198250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber|cos_13pi_18| 199250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber DCD 0x91261480 200250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber|cos_17pi_18| 201250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber DCD 0x81f1d200 202250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber|cos_pi_6| 203250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber DCD 0x6ed9eb80 204250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber ENDP 205250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 206250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 207250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 208250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 209250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 210250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber END 211