⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fft.asm

📁 同样是浮点型的fft算法一样为vc开发的
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen                                          PC v5.1.0 *
;* Date/Time created: Tue Mar 18 16:18:36 2008                                *
;******************************************************************************
	.compiler_opts --endian=little --mem_model:code=near --mem_model:data=far_aggregates --quiet --silicon_version=6710 

;******************************************************************************
;* GLOBAL FILE PARAMETERS                                                     *
;*                                                                            *
;*   Architecture      : TMS320C671x                                          *
;*   Optimization      : Enabled at level 1                                   *
;*   Optimizing for    : Compile time 1st, speed 2nd                          *
;*                       Based on options: -o1, no -ms                        *
;*   Endian            : Little                                               *
;*   Interrupt Thrshld : Disabled                                             *
;*   Data Access Model : Far Aggregate Data                                   *
;*   Pipelining        : Disabled                                             *
;*   Memory Aliases    : Presume are aliases (pessimistic)                    *
;*   Debug Info        : DWARF Debug                                          *
;*                                                                            *
;******************************************************************************

	.asg	A15, FP
	.asg	B14, DP
	.asg	B15, SP
	.global	$bss


DW$CU	.dwtag  DW_TAG_compile_unit
	.dwattr DW$CU, DW_AT_name("FFT.c")
	.dwattr DW$CU, DW_AT_producer("TMS320C6x C/C++ Codegen PC v5.1.0 Copyright (c) 1996-2005 Texas Instruments Incorporated")
	.dwattr DW$CU, DW_AT_stmt_list(0x00)
	.dwattr DW$CU, DW_AT_TI_VERSION(0x01)
DW$1	.dwtag  DW_TAG_variable, DW_AT_name("w"), DW_AT_symbol_name("_w")
	.dwattr DW$1, DW_AT_type(*DW$T$25)
	.dwattr DW$1, DW_AT_declaration(0x01)
	.dwattr DW$1, DW_AT_external(0x01)
;	D:\Program files\ccs\C6000\cgtools\bin\opt6x.exe C:\DOCUME~1\axxxz\LOCALS~1\Temp\TI4082 C:\DOCUME~1\axxxz\LOCALS~1\Temp\TI4084 
	.sect	".text"
	.global	_FFT

DW$2	.dwtag  DW_TAG_subprogram, DW_AT_name("FFT"), DW_AT_symbol_name("_FFT")
	.dwattr DW$2, DW_AT_low_pc(_FFT)
	.dwattr DW$2, DW_AT_high_pc(0x00)
	.dwattr DW$2, DW_AT_begin_file("FFT.c")
	.dwattr DW$2, DW_AT_begin_line(0x07)
	.dwattr DW$2, DW_AT_begin_column(0x06)
	.dwpsn	"FFT.c",8,1

	.dwfde DW$CIE

;******************************************************************************
;* FUNCTION NAME: _FFT                                                        *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,B0,B1, *
;*                           B2,B3,B4,B5,B6,B7,B8,B9,SP                       *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,B0,B1, *
;*                           B2,B3,B4,B5,B6,B7,B8,B9,SP                       *
;*   Local Frame Size  : 0 Args + 0 Auto + 20 Save = 20 byte                  *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o1) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_FFT:
;** --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 126, 19
           STW     .D2T2   B3,*SP--(24)      ; |8| 
	.dwcfa	0x0e, 24
	.dwcfa	0x80, 19, 0
           STW     .D2T1   A13,*+SP(20)      ; |8| 
	.dwcfa	0x80, 13, 1
           STW     .D2T1   A12,*+SP(16)      ; |8| 
	.dwcfa	0x80, 12, 2
           STW     .D2T1   A11,*+SP(12)      ; |8| 
	.dwcfa	0x80, 11, 3
           STW     .D2T1   A10,*+SP(8)       ; |8| 
	.dwcfa	0x80, 10, 4
DW$3	.dwtag  DW_TAG_formal_parameter, DW_AT_name("Y"), DW_AT_symbol_name("_Y")
	.dwattr DW$3, DW_AT_type(*DW$T$21)
	.dwattr DW$3, DW_AT_location[DW_OP_reg4]
DW$4	.dwtag  DW_TAG_formal_parameter, DW_AT_name("N"), DW_AT_symbol_name("_N")
	.dwattr DW$4, DW_AT_type(*DW$T$10)
	.dwattr DW$4, DW_AT_location[DW_OP_reg20]
DW$5	.dwtag  DW_TAG_variable, DW_AT_name("N"), DW_AT_symbol_name("_N")
	.dwattr DW$5, DW_AT_type(*DW$T$23)
	.dwattr DW$5, DW_AT_location[DW_OP_reg9]
DW$6	.dwtag  DW_TAG_variable, DW_AT_name("Y"), DW_AT_symbol_name("_Y")
	.dwattr DW$6, DW_AT_type(*DW$T$24)
	.dwattr DW$6, DW_AT_location[DW_OP_reg10]
DW$7	.dwtag  DW_TAG_variable, DW_AT_name("i"), DW_AT_symbol_name("_i")
	.dwattr DW$7, DW_AT_type(*DW$T$10)
	.dwattr DW$7, DW_AT_location[DW_OP_reg0]
DW$8	.dwtag  DW_TAG_variable, DW_AT_name("j"), DW_AT_symbol_name("_j")
	.dwattr DW$8, DW_AT_type(*DW$T$10)
	.dwattr DW$8, DW_AT_location[DW_OP_reg3]
DW$9	.dwtag  DW_TAG_variable, DW_AT_name("k"), DW_AT_symbol_name("_k")
	.dwattr DW$9, DW_AT_type(*DW$T$10)
	.dwattr DW$9, DW_AT_location[DW_OP_reg4]
DW$10	.dwtag  DW_TAG_variable, DW_AT_name("upper_leg"), DW_AT_symbol_name("_upper_leg")
	.dwattr DW$10, DW_AT_type(*DW$T$10)
	.dwattr DW$10, DW_AT_location[DW_OP_reg4]
DW$11	.dwtag  DW_TAG_variable, DW_AT_name("leg_diff"), DW_AT_symbol_name("_leg_diff")
	.dwattr DW$11, DW_AT_type(*DW$T$10)
	.dwattr DW$11, DW_AT_location[DW_OP_reg5]
DW$12	.dwtag  DW_TAG_variable, DW_AT_name("num_stages"), DW_AT_symbol_name("_num_stages")
	.dwattr DW$12, DW_AT_type(*DW$T$10)
	.dwattr DW$12, DW_AT_location[DW_OP_reg25]
DW$13	.dwtag  DW_TAG_variable, DW_AT_name("index"), DW_AT_symbol_name("_index")
	.dwattr DW$13, DW_AT_type(*DW$T$10)
	.dwattr DW$13, DW_AT_location[DW_OP_reg21]
DW$14	.dwtag  DW_TAG_variable, DW_AT_name("step"), DW_AT_symbol_name("_step")
	.dwattr DW$14, DW_AT_type(*DW$T$10)
	.dwattr DW$14, DW_AT_location[DW_OP_reg22]
DW$15	.dwtag  DW_TAG_variable, DW_AT_name("CSU"), DW_AT_symbol_name("CSU$temp2$imag")
	.dwattr DW$15, DW_AT_type(*DW$T$16)
	.dwattr DW$15, DW_AT_location[DW_OP_reg2]
DW$16	.dwtag  DW_TAG_variable, DW_AT_name("CSU"), DW_AT_symbol_name("CSU$temp2$real")
	.dwattr DW$16, DW_AT_type(*DW$T$16)
	.dwattr DW$16, DW_AT_location[DW_OP_reg1]
DW$17	.dwtag  DW_TAG_variable, DW_AT_name("CSU"), DW_AT_symbol_name("CSU$temp1$imag")
	.dwattr DW$17, DW_AT_type(*DW$T$16)
	.dwattr DW$17, DW_AT_location[DW_OP_reg13]
DW$18	.dwtag  DW_TAG_variable, DW_AT_name("CSU"), DW_AT_symbol_name("CSU$temp1$real")
	.dwattr DW$18, DW_AT_type(*DW$T$16)
	.dwattr DW$18, DW_AT_location[DW_OP_reg12]

           MV      .L1X    B4,A9             ; |8| 
||         MV      .S1     A4,A10            ; |8| 

	.dwpsn	"FFT.c",13,6
           ZERO    .L2     B9                ; |13| 
	.dwpsn	"FFT.c",15,2
           MVK     .S1     0x1,A0            ; |15| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Software pipelining disabled
;*----------------------------------------------------------------------------*
L1:    
DW$L$_FFT$2$B:
	.dwpsn	"FFT.c",18,4
           ADD     .L2     1,B9,B9           ; |18| 
	.dwpsn	"FFT.c",20,11
           ADD     .L1     A0,A0,A0          ; |20| 
           CMPEQ   .L1     A0,A9,A1          ; |20| 
   [!A1]   B       .S1     L1                ; |20| 
           NOP             5
           ; BRANCHCC OCCURS {L1}            ; |20| 
DW$L$_FFT$2$E:
;** --------------------------------------------------------------------------*
	.dwpsn	"FFT.c",21,2
           SHRU    .S2X    A9,31,B5          ; |21| 
           ADD     .L1X    A9,B5,A3          ; |21| 
           SHR     .S1     A3,1,A5           ; |21| 
	.dwpsn	"FFT.c",22,2

           CALL    .S1     __divi            ; |22| 
||         MVKL    .S2     RL0,B3            ; |22| 

           MVKH    .S2     RL0,B3            ; |22| 
           MVK     .S1     0x200,A4          ; |22| 
           NOP             3
RL0:       ; CALL OCCURS {__divi}            ; |22| 
;** --------------------------------------------------------------------------*
           MV      .L2X    A4,B6             ; |22| 
	.dwpsn	"FFT.c",23,7
           ZERO    .L1     A0                ; |23| 
	.dwpsn	"FFT.c",23,13
           CMPGT   .L2     B9,0,B0           ; |23| 
   [!B0]   B       .S1     L7                ; |23| 
           NOP             5
           ; BRANCHCC OCCURS {L7}            ; |23| 
;** --------------------------------------------------------------------------*
;**   BEGIN LOOP L2
;** --------------------------------------------------------------------------*
L2:    
DW$L$_FFT$5$B:
	.dwpsn	"FFT.c",25,4
           ZERO    .L2     B5                ; |25| 
	.dwpsn	"FFT.c",26,9
           ZERO    .L1     A3                ; |26| 
	.dwpsn	"FFT.c",26,16
           CMPGT   .L1     A5,0,A1           ; |26| 
   [!A1]   B       .S1     L6                ; |26| 
           NOP             5
           ; BRANCHCC OCCURS {L6}            ; |26| 
DW$L$_FFT$5$E:
;** --------------------------------------------------------------------------*
;**   BEGIN LOOP L3
;** --------------------------------------------------------------------------*
L3:    
DW$L$_FFT$6$B:
	.dwpsn	"FFT.c",28,11
           MV      .L1     A3,A4             ; |28| 
	.dwpsn	"FFT.c",28,26
           CMPLT   .L1     A4,A9,A1          ; |28| 
   [!A1]   B       .S1     L5                ; |28| 
           NOP             5
           ; BRANCHCC OCCURS {L5}            ; |28| 
DW$L$_FFT$6$E:
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Software pipelining disabled
;*----------------------------------------------------------------------------*
L4:    
DW$L$_FFT$7$B:
	.dwpsn	"FFT.c",31,3

           ADD     .L1     A5,A4,A6          ; |31| 
||         ADDAD   .D1     A10,A4,A8         ; |31| 

           ADDAD   .D1     A10,A6,A7         ; |31| 
           LDW     .D1T1   *A7,A1            ; |31| 
           LDW     .D1T1   *A8,A6            ; |31| 
           NOP             4
           ADDSP   .L1     A1,A6,A12         ; |31| 
	.dwpsn	"FFT.c",32,8
           LDW     .D1T1   *+A7(4),A2        ; |32| 
           LDW     .D1T1   *+A8(4),A11       ; |32| 
           NOP             4
           ADDSP   .L1     A2,A11,A13        ; |32| 
	.dwpsn	"FFT.c",33,8
           SUBSP   .L1     A6,A1,A1          ; |33| 
	.dwpsn	"FFT.c",34,8
           SUBSP   .L1     A11,A2,A2         ; |34| 
	.dwpsn	"FFT.c",35,8
           MVKL    .S2     _w,B4             ; |35| 
           MVKH    .S2     _w,B4             ; |35| 
           ADDAD   .D2     B4,B5,B7          ; |35| 
           LDW     .D2T2   *B7,B4            ; |35| 
           LDW     .D2T2   *+B7(4),B8        ; |35| 
           NOP             3
           MPYSP   .M1X    A1,B4,A6          ; |35| 
           MPYSP   .M1X    A2,B8,A11         ; |35| 
           NOP             3
           SUBSP   .L1     A6,A11,A6         ; |35| 
           NOP             3
           STW     .D1T1   A6,*A7            ; |35| 
	.dwpsn	"FFT.c",37,8
           LDW     .D2T2   *+B7(4),B4        ; |37| 
           LDW     .D2T2   *B7,B7            ; |37| 
           NOP             3
           MPYSP   .M2X    A1,B4,B4          ; |37| 
           MPYSP   .M2X    A2,B7,B7          ; |37| 
           NOP             3
           ADDSP   .L2     B7,B4,B4          ; |37| 
           NOP             3
           STW     .D1T2   B4,*+A7(4)        ; |37| 
	.dwpsn	"FFT.c",39,8
           STW     .D1T1   A12,*A8           ; |39| 
	.dwpsn	"FFT.c",40,8
           STW     .D1T1   A13,*+A8(4)       ; |40| 
	.dwpsn	"FFT.c",28,41
           ADDAH   .D1     A4,A5,A4          ; |28| 
	.dwpsn	"FFT.c",28,26
           CMPLT   .L1     A4,A9,A1          ; |28| 
   [ A1]   B       .S1     L4                ; |28| 
           NOP             5
           ; BRANCHCC OCCURS {L4}            ; |28| 
DW$L$_FFT$7$E:
;** --------------------------------------------------------------------------*
L5:    
DW$L$_FFT$8$B:
	.dwpsn	"FFT.c",42,4
           ADD     .L2     B6,B5,B5          ; |42| 
	.dwpsn	"FFT.c",26,16
           ADD     .L1     1,A3,A3           ; |26| 
           CMPLT   .L1     A3,A5,A1          ; |26| 
   [ A1]   B       .S1     L3                ; |26| 
           NOP             5
           ; BRANCHCC OCCURS {L3}            ; |26| 
DW$L$_FFT$8$E:
;** --------------------------------------------------------------------------*
L6:    
DW$L$_FFT$9$B:
	.dwpsn	"FFT.c",44,6
           SHRU    .S1     A5,31,A3          ; |44| 
           ADD     .L1     A5,A3,A3          ; |44| 
           SHR     .S1     A3,1,A5           ; |44| 
	.dwpsn	"FFT.c",45,6
           ADD     .L2     B6,B6,B6          ; |45| 
	.dwpsn	"FFT.c",23,13
           ADD     .L1     1,A0,A0           ; |23| 
           CMPLT   .L2X    A0,B9,B0          ; |23| 
   [ B0]   B       .S1     L2                ; |23| 
           NOP             5
           ; BRANCHCC OCCURS {L2}            ; |23| 
DW$L$_FFT$9$E:
;** --------------------------------------------------------------------------*
L7:    
	.dwpsn	"FFT.c",47,8
           ZERO    .L1     A3                ; |47| 
	.dwpsn	"FFT.c",48,13
           MVK     .S1     0x1,A0            ; |48| 
	.dwpsn	"FFT.c",48,20
           CMPLT   .L1     A9,3,A1           ; |48| 
   [ A1]   B       .S1     L11               ; |48| 
           NOP             5
           ; BRANCHCC OCCURS {L11}           ; |48| 
;** --------------------------------------------------------------------------*
;**   BEGIN LOOP L8
;** --------------------------------------------------------------------------*
L8:    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -