@ -354,14 +354,18 @@ fft_data:
.macro fft_calc interleave
extfunc f f _ f f t _ c a l c \ i n t e r l e a v e \ ( ) _ a l t i v e c
mflr r0
stp r0 , 2 * P S ( 1 )
stpu r1 , - ( 1 6 0 + 1 6 * P S ) ( 1 )
stp r0 , 2 * P S ( R ( 1 ) )
stpu r1 , - ( 1 6 0 + 1 6 * P S ) ( R ( 1 ) )
get_ g o t r11
addi r6 , r1 , 1 6 * P S
stvm r6 , v20 , v21 , v22 , v23 , v24 , v25 , v26 , v27 , v28 , v29
mfvrsave r0
stw r0 , 1 5 * P S ( 1 )
li r6 , - 4 #0xfffffffc
stw r0 , 1 5 * P S ( R ( 1 ) )
# if _ _ A P P L E _ _
li r6 , 0 x f f f f f f f c
# else
li r6 , - 4
# endif
mtvrsave r6
movrel r6 , f f t _ d a t a , r11
@ -372,7 +376,7 @@ extfunc ff_fft_calc\interleave\()_altivec
movrel r12 , X ( f f _ c o s _ t a b s ) , r11
movrel r6 , f f t _ d i s p a t c h _ t a b \ i n t e r l e a v e \ ( ) _ a l t i v e c , r11
lwz r3 , 0 ( 3 )
lwz r3 , 0 ( R ( 3 ) )
subi r3 , r3 , 2
slwi r3 , r3 , 2 + A R C H _ P P C 6 4
lpx r3 , r3 , r6
@ -382,10 +386,10 @@ extfunc ff_fft_calc\interleave\()_altivec
addi r6 , r1 , 1 6 * P S
lvm r6 , v20 , v21 , v22 , v23 , v24 , v25 , v26 , v27 , v28 , v29
lwz r6 , 1 5 * P S ( 1 )
lwz r6 , 1 5 * P S ( R ( 1 ) )
mtvrsave r6
lp r1 , 0 ( 1 )
lp r0 , 2 * P S ( 1 )
lp r1 , 0 ( R ( 1 ) )
lp r0 , 2 * P S ( R ( 1 ) )
mtlr r0
blr
.endm
@ -393,15 +397,15 @@ extfunc ff_fft_calc\interleave\()_altivec
.macro DECL_FFT suffix, b i t s , n , n 2 , n 4
fft\ n \ s u f f i x \ ( ) _ a l t i v e c :
mflr r0
stp r0 ,P S * ( \ b i t s - 3 ) ( 1 )
stp r0 ,P S * ( \ b i t s - 3 ) ( R ( 1 ) )
bl f f t \ n 2 \ ( ) _ a l t i v e c
addi2 r3 ,\ n * 4
bl f f t \ n 4 \ ( ) _ a l t i v e c
addi2 r3 ,\ n * 2
bl f f t \ n 4 \ ( ) _ a l t i v e c
addi2 r3 ,\ n * - 6
lp r0 ,P S * ( \ b i t s - 3 ) ( 1 )
lp r4 ,\ b i t s * P S ( 1 2 )
lp r0 ,P S * ( \ b i t s - 3 ) ( R ( 1 ) )
lp r4 ,\ b i t s * P S ( R ( 1 2 ) )
mtlr r0
li r5 ,\ n / 1 6
b f f t _ p a s s \ s u f f i x \ ( ) _ a l t i v e c