1d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; ------------------------------------------------------------------ 2d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; Copyright (C) 1998-2009 PacketVideo 3d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; 4d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; Licensed under the Apache License, Version 2.0 (the "License"); 5d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; you may not use this file except in compliance with the License. 6d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; You may obtain a copy of the License at 7d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; 8d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; http://www.apache.org/licenses/LICENSE-2.0 9d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; 10d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; Unless required by applicable law or agreed to in writing, software 11d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; distributed under the License is distributed on an "AS IS" BASIS, 12d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; express or implied. 14d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; See the License for the specific language governing permissions 15d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; and limitations under the License. 16d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; ------------------------------------------------------------------- 17d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 18d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; 19d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; 20d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; Filename: pvmp3_dct_9.s 21d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; 22d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;------------------------------------------------------------------------------ 23d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; REVISION HISTORY 24d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; 25d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; 26d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; Who: Date: MM/DD/YYYY 27d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; Description: 28d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; 29d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;------------------------------------------------------------------------------ 30d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 31d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber AREA |.drectve|, DRECTVE 32d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 33d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber DCB "-defaultlib:coredll.lib " 34d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber DCB "-defaultlib:corelibc.lib " 35d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 36d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber IMPORT pvmp3_mdct_18 ; pvmp3_mdct_18.cpp 37d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 38d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;------------------------------------------------------------------------------ 39d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 40d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber AREA |.rdata|, DATA, READONLY 41d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber % 4 42d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 43d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 44d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;------------------------------------------------------------------------------ 45d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 46d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber AREA |.text|, CODE, READONLY 47d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 48d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 49d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;------------------------------------------------------------------------------ 50d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 51d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber EXPORT |pvmp3_dct_9| 52d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 53d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber|pvmp3_dct_9| PROC 54d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber stmfd sp!,{r4-r10,lr} 55d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r2, [r0, #0x20] 56d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r3, [r0] 57d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r12,[r0, #4] 58d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber add r1,r2,r3 59d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber sub lr,r2,r3 60d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r3,[r0, #0x1c] 61d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r4,[r0, #0x18] 62d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber add r2,r3,r12 63d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r5,[r0,#8] 64d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber sub r3,r3,r12 65d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber add r12,r4,r5 66d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber sub r4,r4,r5 67d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r5,[r0, #0x14] 68d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r7,[r0, #0xc] 69d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r9,[r0, #0x10] 70d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber add r6,r5,r7 71d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber sub r5,r5,r7 72d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber add r7,r1,r12 73d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber add r8,r9,r2 74d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber add r7,r7,r6 75d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber add r10,r7,r8 76d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber rsb r7,r8,r7,asr #1 77d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber str r7,[r0, #0x18] 78d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber rsb r2,r9,r2,asr #1 79d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber str r10,[r0] 80d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r11,|cos_2pi_9| 81d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber rsb r7,r2,#0 82d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 83d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber mov r9,r1,lsl #1 84d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber mov r1,r9 ;;;;;; !!!!!! 85d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber mov r8,r7 86d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 87d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[4] = fxp_mac32_Q32( vec[4], tmp0<<1, cos_2pi_9); 88d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 89d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r1,r8,r11,r9 90d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r10,|cos_4pi_9| 91d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r11,|cos_pi_9| 92d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 93d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[8] = fxp_mac32_Q32( vec[8], tmp0<<1, cos_4pi_9); 94d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 95d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r1,r7,r10,r9 96d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 97d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 98d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 99d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[2] = fxp_mac32_Q32( vec[2], tmp0<<1, cos_pi_9); 100d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 101d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r9,r2,r11,r9 102d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber mov r1,r12,lsl #1 103d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber rsb r9,r10,#0 104d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r11,|cos_5pi_9| 105d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 106d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r12,r2,r9,r1 107d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 108d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 109d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 110d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[2] = fxp_mac32_Q32( vec[2], tmp2<<1, cos_5pi_9); 111d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 112d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r9,|cos_2pi_9| 113d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber mov r12,r1 ;;;;;; !!!!!! 114d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r12,r8,r11,r1 115d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 116d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 117d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[8] = fxp_mac32_Q32( vec[8], tmp2<<1, cos_2pi_9); 118d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 119d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r1,r7,r9,r1 120d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber mov r1,r6,lsl #1 121d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r12,r7,r11,r1 122d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber and r6,r10,r11,asr #14 123d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r12,r8,r6,r1 124d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r10,|cos_11pi_18| 125d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber add r12,r11,r6 126d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r1,r2,r12,r1 127d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r9,|cos_8pi_9| 128d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber str r2,[r0,#8] 129d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber mov r1,r5,lsl #1 130d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 131d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[8] = fxp_mac32_Q32( vec[8], tmp3<<1, cos_8pi_9); 132d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 133d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smull r2,r6,r9,r1 134d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber str r7,[r0,#0x20] 135d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber mov r2,r4,lsl #1 136d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r7,|cos_13pi_18| 137d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r12,r6,r10,r2 138d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 139d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber mov r3,r3,lsl #1 140d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 141d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[5] = fxp_mac32_Q32( vec[5], tmp8<<1, cos_13pi_18); 142d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 143d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r12,r6,r7,r3 144d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber add r4,r5,r4 145d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber mov r12,lr,lsl #1 146d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber sub lr,r4,lr 147d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r7,|cos_17pi_18| 148d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber str r8,[r0, #0x10] 149d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldr r4,|cos_pi_6| 150d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 151d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber mov lr,lr,lsl #1 152d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 153d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[1] = fxp_mac32_Q32( vec[1], tmp8<<1, cos_17pi_18); 154d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 155d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r8,r6,r7,r12 156d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 157d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[3] = fxp_mul32_Q32((tmp5 + tmp6 - tmp8)<<1, cos_pi_6); 158d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 159d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smull r5,lr,r4,lr 160d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber str r6,[r0, #4] 161d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber str lr,[r0, #0xc] 162d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 163d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 164d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[5] = fxp_mul32_Q32(tmp5<<1, cos_17pi_18); 165d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smull r5,lr,r7,r1 166d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber rsb r6,r9,#0 167d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[5] = fxp_mac32_Q32( vec[5], tmp6<<1, cos_7pi_18); 168d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r5,lr,r6,r2 169d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[5] = fxp_mac32_Q32( vec[5], tmp7<<1, cos_pi_6); 170d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r5,lr,r4,r3 171d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[5] = fxp_mac32_Q32( vec[5], tmp8<<1, cos_13pi_18); 172d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r5,lr,r10,r12 173d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber str lr,[r0, #0x14] 174d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber rsb lr,r10,#0 175d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 176d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[7] = fxp_mul32_Q32(tmp5<<1, cos_5pi_18); 177d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smull r5,r1,lr,r1 178d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[7] = fxp_mac32_Q32( vec[7], tmp6<<1, cos_17pi_18); 179d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r2,r1,r7,r2 180d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[7] = fxp_mac32_Q32( vec[7], tmp7<<1, cos_pi_6); 181d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r3,r1,r4,r3 182d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; vec[7] = fxp_mac32_Q32( vec[7], tmp8<<1, cos_11pi_18); 183d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber smlal r12,r1,r9,r12 184d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber str r1,[r0, #0x1c] 185d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ldmfd sp!,{r4-r10,pc} 186d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber|cos_2pi_9| 187d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber DCD 0x620dbe80 188d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber|cos_4pi_9| 189d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber DCD 0x163a1a80 190d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber|cos_pi_9| 191d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber DCD 0x7847d900 192d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber|cos_5pi_9| 193d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber DCD 0x87b82700 194d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber|cos_8pi_9| 195d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber DCD 0xd438af00 196d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber|cos_11pi_18| 197d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber DCD 0xadb92280 198d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber|cos_13pi_18| 199d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber DCD 0x91261480 200d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber|cos_17pi_18| 201d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber DCD 0x81f1d200 202d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber|cos_pi_6| 203d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber DCD 0x6ed9eb80 204d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber ENDP 205d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 206d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 207d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 208d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 209d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 210d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber END 211