blob: 618c50e25334c9ed08b824e5eb094f150d350319 [file] [log] [blame]
@ ------------------------------------------------------------------
@ Copyright (C) 1998-2009 PacketVideo
@
@ Licensed under the Apache License, Version 2.0 (the "License");
@ you may not use this file except in compliance with the License.
@ You may obtain a copy of the License at
@
@ http://www.apache.org/licenses/LICENSE-2.0
@
@ Unless required by applicable law or agreed to in writing, software
@ distributed under the License is distributed on an "AS IS" BASIS,
@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
@ express or implied.
@ See the License for the specific language governing permissions
@ and limitations under the License.
@ -------------------------------------------------------------------
@
@
@ Filename: pvmp3_dct_9_gcc.s
@
@------------------------------------------------------------------------------
@ REVISION HISTORY
@
@
@ Who: Date: MM/DD/YYYY
@ Description:
@
@------------------------------------------------------------------------------
.arm
.align 4
.text
@------------------------------------------------------------------------------
.global pvmp3_dct_9
pvmp3_dct_9:
stmfd sp!,{r4-r11,lr}
ldr r2, [r0, #0x20]
ldr r3, [r0, #0]
ldr r12,[r0, #4]
add r1,r2,r3
sub lr,r2,r3
ldr r3,[r0, #0x1c]
ldr r4,[r0, #0x18]
add r2,r3,r12
ldr r5,[r0,#8]
sub r3,r3,r12
add r12,r4,r5
sub r4,r4,r5
ldr r5,[r0, #0x14]
ldr r7,[r0, #0xc]
ldr r9,[r0, #0x10]
add r6,r5,r7
sub r5,r5,r7
add r7,r1,r12
add r8,r9,r2
add r7,r7,r6
add r10,r7,r8
rsb r7,r8,r7,asr #1
str r7,[r0, #0x18]
rsb r2,r9,r2,asr #1
str r10,[r0,#0]
ldr r11,cos_2pi_9
rsb r7,r2,#0
ldr r10,cos_4pi_9
mov r9,r1,lsl #1
mov r8,r7
@ vec[4] = fxp_mac32_Q32( vec[4], tmp0<<1, cos_2pi_9)@
smlal r1,r8,r11,r9
ldr r11,cos_pi_9
mov r1,r9 @@@@@@ !!!!!!
@ vec[8] = fxp_mac32_Q32( vec[8], tmp0<<1, cos_4pi_9)@
smlal r1,r7,r10,r9
mov r1,r12,lsl #1
@ vec[2] = fxp_mac32_Q32( vec[2], tmp0<<1, cos_pi_9)@
smlal r9,r2,r11,r9
rsb r9,r10,#0
ldr r11,cos_5pi_9
smlal r12,r2,r9,r1
@ vec[2] = fxp_mac32_Q32( vec[2], tmp2<<1, cos_5pi_9)@
ldr r9,cos_2pi_9
mov r12,r1 @@@@@@ !!!!!!
smlal r12,r8,r11,r1
@ vec[8] = fxp_mac32_Q32( vec[8], tmp2<<1, cos_2pi_9)@
smlal r1,r7,r9,r1
mov r1,r6,lsl #1
smlal r12,r7,r11,r1
and r6,r10,r11,asr #14
smlal r12,r8,r6,r1
ldr r10,cos_11pi_18
add r12,r11,r6
smlal r1,r2,r12,r1
ldr r9,cos_8pi_9
str r2,[r0,#8]
mov r1,r5,lsl #1
@ vec[8] = fxp_mac32_Q32( vec[8], tmp3<<1, cos_8pi_9)@
smull r2,r6,r9,r1
str r7,[r0,#0x20]
mov r2,r4,lsl #1
ldr r7,cos_13pi_18
smlal r12,r6,r10,r2
mov r3,r3,lsl #1
@ vec[5] = fxp_mac32_Q32( vec[5], tmp8<<1, cos_13pi_18)@
smlal r12,r6,r7,r3
add r4,r5,r4
mov r12,lr,lsl #1
sub lr,r4,lr
ldr r7,cos_17pi_18
str r8,[r0, #0x10]
ldr r4,cos_pi_6
mov lr,lr,lsl #1
@ vec[1] = fxp_mac32_Q32( vec[1], tmp8<<1, cos_17pi_18)@
smlal r8,r6,r7,r12
@ vec[3] = fxp_mul32_Q32((tmp5 + tmp6 - tmp8)<<1, cos_pi_6)@
smull r5,lr,r4,lr
str r6,[r0, #4]
str lr,[r0, #0xc]
@ vec[5] = fxp_mul32_Q32(tmp5<<1, cos_17pi_18)@
smull r5,lr,r7,r1
rsb r6,r9,#0
@ vec[5] = fxp_mac32_Q32( vec[5], tmp6<<1, cos_7pi_18)@
smlal r5,lr,r6,r2
@ vec[5] = fxp_mac32_Q32( vec[5], tmp7<<1, cos_pi_6)@
smlal r5,lr,r4,r3
@ vec[5] = fxp_mac32_Q32( vec[5], tmp8<<1, cos_13pi_18)@
smlal r5,lr,r10,r12
str lr,[r0, #0x14]
rsb lr,r10,#0
@ vec[7] = fxp_mul32_Q32(tmp5<<1, cos_5pi_18)@
smull r5,r1,lr,r1
@ vec[7] = fxp_mac32_Q32( vec[7], tmp6<<1, cos_17pi_18)@
smlal r2,r1,r7,r2
@ vec[7] = fxp_mac32_Q32( vec[7], tmp7<<1, cos_pi_6)@
smlal r3,r1,r4,r3
@ vec[7] = fxp_mac32_Q32( vec[7], tmp8<<1, cos_11pi_18)@
smlal r12,r1,r9,r12
str r1,[r0, #0x1c]
ldmfd sp!,{r4-r11,pc}
cos_2pi_9:
.word 0x620dbe80
cos_4pi_9:
.word 0x163a1a80
cos_pi_9:
.word 0x7847d900
cos_5pi_9:
.word 0x87b82700
cos_8pi_9:
.word 0xd438af00
cos_11pi_18:
.word 0xadb92280
cos_13pi_18:
.word 0x91261480
cos_17pi_18:
.word 0x81f1d200
cos_pi_6:
.word 0x6ed9eb80