📄 fft2.asm
字号:
cmpi3 *+ar0(ir0),r0 ; |118|
blt L23 ; |118|
;* Branch Occurs to L23 ; |118|
L26:
.line 5
ldiu 1,r0 ; |104|
addi *+fp(1),r0 ; |104|
sti r0,*+fp(1) ; |104|
cmpi 8,r0 ; |104|
blt L16 ; |104|
;* Branch Occurs to L16 ; |104|
L27:
.line 30
;----------------------------------------------------------------------
; 129 | for ( i=0; i<256; i++ )
;----------------------------------------------------------------------
ldiu 0,r0 ; |129|
sti r0,*+fp(1) ; |129|
cmpi 256,r0 ; |129|
ldiu 1,r1 ; |132|
bge L29 ; |129|
;* Branch Occurs to L29 ; |129|
L28:
.line 32
;----------------------------------------------------------------------
; 131 | fft_out[2*i]=fft_in[bitrev_index[i]];
;----------------------------------------------------------------------
ldiu *+fp(1),ir1 ; |131|
ldiu @CL23,ar1 ; |131|
ldiu @CL9,ar0 ; |131|
ldiu ir1,ir0 ; |131|
ldiu @CL20,ar2 ; |131|
ldiu *+ar1(ir1),ir1 ; |131|
mpyi 2,ir0 ; |131|
ldfu *+ar0(ir1),f0 ; |131|
stf f0,*+ar2(ir0) ; |131|
.line 33
;----------------------------------------------------------------------
; 132 | fft_out[2*i+1]=fft_in[bitrev_index[i]+1];
;----------------------------------------------------------------------
ldiu *+fp(1),ir0 ; |132|
ldiu ir0,ir1 ; |132|
mpyi 2,ir0 ; |132|
addi3 r1,*+ar1(ir1),ir1 ; |132|
addi 1,ir0 ; |132|
ldfu *+ar0(ir1),f0 ; |132|
stf f0,*+ar2(ir0) ; |132|
.line 30
ldiu 1,r0 ; |129|
addi *+fp(1),r0 ; |129|
sti r0,*+fp(1) ; |129|
cmpi 256,r0 ; |129|
blt L28 ; |129|
;* Branch Occurs to L28 ; |129|
L29:
.line 36
; Begin Epilog Code
ldiu *-fp(1),r1
ldiu *fp,fp
; Restore SOE Registers
pop ar7
pop ar6
pop ar5
pop ar4
; Unallocate the Frame
subi 11,sp
bu r1
;* Branch Occurs to r1
.endfunc 135,00000f000h,9
.sect ".text"
.global _ifft
.sym _ifft,_ifft,32,2,0
.func 136
;******************************************************************************
;* FUNCTION NAME: _ifft *
;* *
;* Architecture : TMS320C33 *
;* Calling Convention : TI Standard Register Parameters *
;* Function Uses Regs : f0,r0,f1,r1,f2,r2,f3,r3,ar0,ar1,ar2,ar4,ar5,ar6,ar7,*
;* ir0,ir1,st,rs,re *
;* Regs Saved : ar4,ar5,ar6,ar7 *
;* Stack Frame : Full (w/ debug) *
;* Total Frame Size : 2 Call + 0 Parm + 9 Auto + 4 SOE = 15 words *
;******************************************************************************
_ifft:
.sym _i,1,4,1,32
.sym _j,2,4,1,32
.sym _k,3,4,1,32
.sym _local0,4,4,1,32
.sym _local1,5,4,1,32
.sym _win0,6,4,1,32
.sym _win1,7,4,1,32
.sym _win2,8,4,1,32
.sym _win3,9,4,1,32
.line 1
;----------------------------------------------------------------------
; 136 | void ifft(void)
; 138 | int i,j,k,local0,local1,win0,win1,win2,win3;
;----------------------------------------------------------------------
push fp
ldiu sp,fp
addi 9,sp
push ar4
push ar5
push ar6
push ar7
.line 4
;----------------------------------------------------------------------
; 139 | for (i=0;i<8;i++)
;----------------------------------------------------------------------
ldiu 0,r0 ; |139|
sti r0,*+fp(1) ; |139|
cmpi 8,r0 ; |139|
bge L43 ; |139|
;* Branch Occurs to L43 ; |139|
L32:
.line 5
;----------------------------------------------------------------------
; 140 | if ((i!=curse[i]))
;----------------------------------------------------------------------
ldiu *+fp(1),ir0 ; |140|
ldiu @CL14,ar0 ; |140|
ldiu ir0,r0 ; |140|
cmpi3 *+ar0(ir0),r0 ; |140|
beq L38 ; |140|
;* Branch Occurs to L38 ; |140|
.line 6
;----------------------------------------------------------------------
; 141 | for (k=0;k<i_k[i];k++)
;----------------------------------------------------------------------
ldiu 0,r0 ; |141|
sti r0,*+fp(3) ; |141|
ldiu @CL15,ar0 ; |141|
cmpi3 *+ar0(ir0),r0 ; |141|
bge L42 ; |141|
;* Branch Occurs to L42 ; |141|
L34:
.line 7
;----------------------------------------------------------------------
; 142 | for (j=0;j<mid[i];j++)
;----------------------------------------------------------------------
ldiu 0,r0 ; |142|
sti r0,*+fp(2) ; |142|
ldiu @CL16,ar0 ; |142|
ldiu *+fp(1),ir0 ; |142|
cmpi3 *+ar0(ir0),r0 ; |142|
bge L36 ; |142|
;* Branch Occurs to L36 ; |142|
L35:
.line 9
;----------------------------------------------------------------------
; 144 | Pset=j*inner[i];
;----------------------------------------------------------------------
ldiu *+fp(1),ir0 ; |144|
ldiu @CL17,ar0 ; |144|
ldiu *+fp(2),r0 ; |144|
mpyi *+ar0(ir0),r0 ; |144|
sti r0,@_Pset+0 ; |144|
.line 10
;----------------------------------------------------------------------
; 145 | local0=2*j+k*mid2[i];local1=local0+1; win0=local0+mid1[i];win1=local1+m
; | id1[i];
;----------------------------------------------------------------------
ldiu *+fp(2),r1 ; |145|
ldiu *+fp(3),r0 ; |145|
ldiu @CL18,ar0 ; |145|
mpyi 2,r1 ; |145|
mpyi *+ar0(ir0),r0 ; |145|
addi3 r0,r1,r0 ; |145|
sti r0,*+fp(4) ; |145|
ldiu 1,r0 ; |145|
addi *+fp(4),r0 ; |145|
sti r0,*+fp(5) ; |145|
ldiu @CL19,ar0 ; |145|
ldiu *+ar0(ir0),r0 ; |145|
addi *+fp(4),r0 ; |145|
sti r0,*+fp(6) ; |145|
ldiu *+ar0(ir0),r0 ; |145|
addi *+fp(5),r0 ; |145|
sti r0,*+fp(7) ; |145|
.line 11
;----------------------------------------------------------------------
; 146 | fft_in[local0]=fft_out[local0]+fft_out[win0];
;----------------------------------------------------------------------
ldiu @CL9,ar2 ; |146|
ldiu @CL20,ar1 ; |146|
ldiu @CL20,ar0 ; |146|
ldiu *+fp(4),ir0 ; |146|
ldiu *+fp(6),ir1 ; |146|
addf3 *+ar0(ir0),*+ar1(ir1),f1 ; |146|
stf f1,*+ar2(ir0) ; |146|
.line 12
;----------------------------------------------------------------------
; 147 | fft_in[local1]=fft_out[local1]+fft_out[win1];
;----------------------------------------------------------------------
ldiu *+fp(5),ir0 ; |147|
ldiu *+fp(7),ir1 ; |147|
addf3 *+ar0(ir0),*+ar1(ir1),f1 ; |147|
stf f1,*+ar2(ir0) ; |147|
.line 13
;----------------------------------------------------------------------
; 148 | fft_in[win0]=(fft_out[local0]-fft_out[win0])*ctab[Pset]-(fft_out[local1
; | ]-fft_out[win1])*stab[Pset];
;----------------------------------------------------------------------
ldiu *+fp(4),ir0 ; |148|
ldiu *+fp(6),ir1 ; |148|
ldiu @CL20,ar4 ; |148|
ldiu @CL20,ar5 ; |148|
ldiu *+fp(5),r2 ; |148|
ldiu @CL22,ar2 ; |148|
ldiu *+fp(7),r3 ; |148|
ldiu @CL21,ar6 ; |148|
subf3 *+ar1(ir1),*+ar0(ir0),f1 ; |148|
ldiu @_Pset+0,r0 ; |148|
ldiu @CL9,ar0 ; |148|
ldiu r2,ir0 ; |148|
ldiu r3,ir1 ; |148|
subf3 *+ar5(ir1),*+ar4(ir0),f2 ; |148|
ldiu r0,ir0 ; |148|
ldiu r0,ir1 ; |148|
mpyf3 *+ar6(ir0),f1,f0 ; |148|
mpyf3 *+ar2(ir1),f2,f1 ; |148|
ldiu *+fp(6),ir0 ; |148|
subrf f0,f1 ; |148|
stf f1,*+ar0(ir0) ; |148|
.line 14
;----------------------------------------------------------------------
; 149 | fft_in[win1]=(fft_out[local1]-fft_out[win1])*ctab[Pset]+(fft_out[local0
; | ]-fft_out[win0])*stab[Pset];
; 152 | else
;----------------------------------------------------------------------
ldiu @CL20,ar2 ; |149|
ldiu *+fp(4),ir1 ; |149|
ldiu *+fp(6),ir0 ; |149|
ldiu @CL22,ar0 ; |149|
ldiu *+fp(7),r2 ; |149|
ldiu @CL20,ar7 ; |149|
ldiu @CL20,ar6 ; |149|
ldiu @CL21,ar4 ; |149|
ldiu *+fp(5),r3 ; |149|
ldiu @_Pset+0,r1 ; |149|
ldiu @CL9,ar5 ; |149|
subf3 *+ar2(ir0),*+ar1(ir1),f0 ; |149|
ldiu r2,ir0 ; |149|
ldiu r3,ir1 ; |149|
subf3 *+ar6(ir0),*+ar7(ir1),f2 ; |149|
ldiu r1,ir0 ; |149|
mpyf3 *+ar0(ir0),f0,f0 ; |149|
mpyf3 *+ar4(ir0),f2,f1 ; |149|
ldiu *+fp(7),ir0 ; |149|
addf3 f1,f0,f0 ; |149|
stf f0,*+ar5(ir0) ; |149|
.line 7
ldiu 1,r0 ; |142|
addi *+fp(2),r0 ; |142|
sti r0,*+fp(2) ; |142|
ldiu @CL16,ar0 ; |142|
ldiu *+fp(1),ir0 ; |142|
cmpi3 *+ar0(ir0),r0 ; |142|
blt L35 ; |142|
;* Branch Occurs to L35 ; |142|
L36:
.line 6
ldiu 1,r0 ; |141|
addi *+fp(3),r0 ; |141|
sti r0,*+fp(3) ; |141|
ldiu @CL15,ar0 ; |141|
ldiu *+fp(1),ir0 ; |141|
cmpi3 *+ar0(ir0),r0 ; |141|
blt L34 ; |141|
;* Branch Occurs to L34 ; |141|
bu L42 ; |135|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -