1@ ------------------------------------------------------------------ 2@ Copyright (C) 1998-2009 PacketVideo 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 13@ express or implied. 14@ See the License for the specific language governing permissions 15@ and limitations under the License. 16@ ------------------------------------------------------------------- 17 18@ 19@ 20@ Filename: pvmp3_dct_9_gcc.s 21@ 22@------------------------------------------------------------------------------ 23@ REVISION HISTORY 24@ 25@ 26@ Who: Date: MM/DD/YYYY 27@ Description: 28@ 29@------------------------------------------------------------------------------ 30 31.arm 32 33.align 4 34 35.text 36 37 38@------------------------------------------------------------------------------ 39 40.global pvmp3_dct_9 41 42pvmp3_dct_9: 43 stmfd sp!,{r4-r11,lr} 44 ldr r2, [r0, #0x20] 45 ldr r3, [r0, #0] 46 ldr r12,[r0, #4] 47 add r1,r2,r3 48 sub lr,r2,r3 49 ldr r3,[r0, #0x1c] 50 ldr r4,[r0, #0x18] 51 add r2,r3,r12 52 ldr r5,[r0,#8] 53 sub r3,r3,r12 54 add r12,r4,r5 55 sub r4,r4,r5 56 ldr r5,[r0, #0x14] 57 ldr r7,[r0, #0xc] 58 ldr r9,[r0, #0x10] 59 add r6,r5,r7 60 sub r5,r5,r7 61 add r7,r1,r12 62 add r8,r9,r2 63 add r7,r7,r6 64 add r10,r7,r8 65 rsb r7,r8,r7,asr #1 66 str r7,[r0, #0x18] 67 rsb r2,r9,r2,asr #1 68 str r10,[r0,#0] 69 ldr r11,cos_2pi_9 70 rsb r7,r2,#0 71 72 ldr r10,cos_4pi_9 73 mov r9,r1,lsl #1 74 mov r8,r7 75 76@ vec[4] = fxp_mac32_Q32( vec[4], tmp0<<1, cos_2pi_9)@ 77 78 smlal r1,r8,r11,r9 79 ldr r11,cos_pi_9 80 mov r1,r9 @@@@@@ !!!!!! 81 82@ vec[8] = fxp_mac32_Q32( vec[8], tmp0<<1, cos_4pi_9)@ 83 84 smlal r1,r7,r10,r9 85 86 mov r1,r12,lsl #1 87 88 89@ vec[2] = fxp_mac32_Q32( vec[2], tmp0<<1, cos_pi_9)@ 90 91 smlal r9,r2,r11,r9 92 rsb r9,r10,#0 93 ldr r11,cos_5pi_9 94 95 smlal r12,r2,r9,r1 96 97 98 99@ vec[2] = fxp_mac32_Q32( vec[2], tmp2<<1, cos_5pi_9)@ 100 101 ldr r9,cos_2pi_9 102 mov r12,r1 @@@@@@ !!!!!! 103 smlal r12,r8,r11,r1 104 105 106@ vec[8] = fxp_mac32_Q32( vec[8], tmp2<<1, cos_2pi_9)@ 107 108 smlal r1,r7,r9,r1 109 mov r1,r6,lsl #1 110 smlal r12,r7,r11,r1 111 and r6,r10,r11,asr #14 112 smlal r12,r8,r6,r1 113 ldr r10,cos_11pi_18 114 add r12,r11,r6 115 smlal r1,r2,r12,r1 116 ldr r9,cos_8pi_9 117 str r2,[r0,#8] 118 mov r1,r5,lsl #1 119 120@ vec[8] = fxp_mac32_Q32( vec[8], tmp3<<1, cos_8pi_9)@ 121 122 smull r2,r6,r9,r1 123 str r7,[r0,#0x20] 124 mov r2,r4,lsl #1 125 ldr r7,cos_13pi_18 126 smlal r12,r6,r10,r2 127 128 mov r3,r3,lsl #1 129 130@ vec[5] = fxp_mac32_Q32( vec[5], tmp8<<1, cos_13pi_18)@ 131 132 smlal r12,r6,r7,r3 133 add r4,r5,r4 134 mov r12,lr,lsl #1 135 sub lr,r4,lr 136 ldr r7,cos_17pi_18 137 str r8,[r0, #0x10] 138 ldr r4,cos_pi_6 139 140 mov lr,lr,lsl #1 141 142@ vec[1] = fxp_mac32_Q32( vec[1], tmp8<<1, cos_17pi_18)@ 143 144 smlal r8,r6,r7,r12 145 146@ vec[3] = fxp_mul32_Q32((tmp5 + tmp6 - tmp8)<<1, cos_pi_6)@ 147 148 smull r5,lr,r4,lr 149 str r6,[r0, #4] 150 str lr,[r0, #0xc] 151 152 153@ vec[5] = fxp_mul32_Q32(tmp5<<1, cos_17pi_18)@ 154 smull r5,lr,r7,r1 155 rsb r6,r9,#0 156@ vec[5] = fxp_mac32_Q32( vec[5], tmp6<<1, cos_7pi_18)@ 157 smlal r5,lr,r6,r2 158@ vec[5] = fxp_mac32_Q32( vec[5], tmp7<<1, cos_pi_6)@ 159 smlal r5,lr,r4,r3 160@ vec[5] = fxp_mac32_Q32( vec[5], tmp8<<1, cos_13pi_18)@ 161 smlal r5,lr,r10,r12 162 str lr,[r0, #0x14] 163 rsb lr,r10,#0 164 165@ vec[7] = fxp_mul32_Q32(tmp5<<1, cos_5pi_18)@ 166 smull r5,r1,lr,r1 167@ vec[7] = fxp_mac32_Q32( vec[7], tmp6<<1, cos_17pi_18)@ 168 smlal r2,r1,r7,r2 169@ vec[7] = fxp_mac32_Q32( vec[7], tmp7<<1, cos_pi_6)@ 170 smlal r3,r1,r4,r3 171@ vec[7] = fxp_mac32_Q32( vec[7], tmp8<<1, cos_11pi_18)@ 172 smlal r12,r1,r9,r12 173 str r1,[r0, #0x1c] 174 ldmfd sp!,{r4-r11,pc} 175cos_2pi_9: 176 .word 0x620dbe80 177cos_4pi_9: 178 .word 0x163a1a80 179cos_pi_9: 180 .word 0x7847d900 181cos_5pi_9: 182 .word 0x87b82700 183cos_8pi_9: 184 .word 0xd438af00 185cos_11pi_18: 186 .word 0xadb92280 187cos_13pi_18: 188 .word 0x91261480 189cos_17pi_18: 190 .word 0x81f1d200 191cos_pi_6: 192 .word 0x6ed9eb80 193 194