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

📄 fft256c.asm

📁 同样是浮点型的fft算法一样为vc开发的
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen                                          PC v5.1.0 *
;* Date/Time created: Tue Mar 18 16:18:06 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("FFT256c.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)
;*****************************************************************************
;* CINIT RECORDS                                                             *
;*****************************************************************************
	.sect	".cinit"
	.align	8
	.field  	2,32
	.field  	_buffercount+0,32
	.field  	0,16			; _buffercount @ 0

	.sect	".cinit"
	.align	8
	.field  	2,32
	.field  	_flag+0,32
	.field  	0,16			; _flag @ 0


DW$1	.dwtag  DW_TAG_subprogram, DW_AT_name("sqrt"), DW_AT_symbol_name("_sqrt")
	.dwattr DW$1, DW_AT_type(*DW$T$17)
	.dwattr DW$1, DW_AT_declaration(0x01)
	.dwattr DW$1, DW_AT_external(0x01)
DW$2	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$17)
	.dwendtag DW$1


DW$3	.dwtag  DW_TAG_subprogram, DW_AT_name("sin"), DW_AT_symbol_name("_sin")
	.dwattr DW$3, DW_AT_type(*DW$T$17)
	.dwattr DW$3, DW_AT_declaration(0x01)
	.dwattr DW$3, DW_AT_external(0x01)
DW$4	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$17)
	.dwendtag DW$3


DW$5	.dwtag  DW_TAG_subprogram, DW_AT_name("cos"), DW_AT_symbol_name("_cos")
	.dwattr DW$5, DW_AT_type(*DW$T$17)
	.dwattr DW$5, DW_AT_declaration(0x01)
	.dwattr DW$5, DW_AT_external(0x01)
DW$6	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$17)
	.dwendtag DW$5


DW$7	.dwtag  DW_TAG_subprogram, DW_AT_name("FFT"), DW_AT_symbol_name("_FFT")
	.dwattr DW$7, DW_AT_declaration(0x01)
	.dwattr DW$7, DW_AT_external(0x01)
DW$8	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$21)
DW$9	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$10)
	.dwendtag DW$7


DW$10	.dwtag  DW_TAG_subprogram, DW_AT_name("comm_intr"), DW_AT_symbol_name("_comm_intr")
	.dwattr DW$10, DW_AT_type(*DW$T$10)
	.dwattr DW$10, DW_AT_declaration(0x01)
	.dwattr DW$10, DW_AT_external(0x01)

DW$11	.dwtag  DW_TAG_subprogram, DW_AT_name("output_sample"), DW_AT_symbol_name("_output_sample")
	.dwattr DW$11, DW_AT_type(*DW$T$10)
	.dwattr DW$11, DW_AT_declaration(0x01)
	.dwattr DW$11, DW_AT_external(0x01)

DW$12	.dwtag  DW_TAG_subprogram, DW_AT_name("input_sample"), DW_AT_symbol_name("_input_sample")
	.dwattr DW$12, DW_AT_type(*DW$T$10)
	.dwattr DW$12, DW_AT_declaration(0x01)
	.dwattr DW$12, DW_AT_external(0x01)
	.global	_iobuffer
_iobuffer:	.usect	".far",1024,4
DW$13	.dwtag  DW_TAG_variable, DW_AT_name("iobuffer"), DW_AT_symbol_name("_iobuffer")
	.dwattr DW$13, DW_AT_location[DW_OP_addr _iobuffer]
	.dwattr DW$13, DW_AT_type(*DW$T$27)
	.dwattr DW$13, DW_AT_external(0x01)
	.global	_x1
_x1:	.usect	".far",1024,4
DW$14	.dwtag  DW_TAG_variable, DW_AT_name("x1"), DW_AT_symbol_name("_x1")
	.dwattr DW$14, DW_AT_location[DW_OP_addr _x1]
	.dwattr DW$14, DW_AT_type(*DW$T$27)
	.dwattr DW$14, DW_AT_external(0x01)
	.global	_i
	.bss	_i,2,2
DW$15	.dwtag  DW_TAG_variable, DW_AT_name("i"), DW_AT_symbol_name("_i")
	.dwattr DW$15, DW_AT_location[DW_OP_addr _i]
	.dwattr DW$15, DW_AT_type(*DW$T$8)
	.dwattr DW$15, DW_AT_external(0x01)
	.global	_buffercount
	.bss	_buffercount,2,2
DW$16	.dwtag  DW_TAG_variable, DW_AT_name("buffercount"), DW_AT_symbol_name("_buffercount")
	.dwattr DW$16, DW_AT_location[DW_OP_addr _buffercount]
	.dwattr DW$16, DW_AT_type(*DW$T$8)
	.dwattr DW$16, DW_AT_external(0x01)
	.global	_flag
	.bss	_flag,2,2
DW$17	.dwtag  DW_TAG_variable, DW_AT_name("flag"), DW_AT_symbol_name("_flag")
	.dwattr DW$17, DW_AT_location[DW_OP_addr _flag]
	.dwattr DW$17, DW_AT_type(*DW$T$8)
	.dwattr DW$17, DW_AT_external(0x01)
	.global	_w
_w:	.usect	".far",2048,4
DW$18	.dwtag  DW_TAG_variable, DW_AT_name("w"), DW_AT_symbol_name("_w")
	.dwattr DW$18, DW_AT_location[DW_OP_addr _w]
	.dwattr DW$18, DW_AT_type(*DW$T$31)
	.dwattr DW$18, DW_AT_external(0x01)
	.global	_samples
_samples:	.usect	".far",2048,4
DW$19	.dwtag  DW_TAG_variable, DW_AT_name("samples"), DW_AT_symbol_name("_samples")
	.dwattr DW$19, DW_AT_location[DW_OP_addr _samples]
	.dwattr DW$19, DW_AT_type(*DW$T$31)
	.dwattr DW$19, DW_AT_external(0x01)
;	D:\Program files\ccs\C6000\cgtools\bin\opt6x.exe C:\DOCUME~1\axxxz\LOCALS~1\Temp\TI3962 C:\DOCUME~1\axxxz\LOCALS~1\Temp\TI3964 
	.sect	".text"
	.global	_main

DW$20	.dwtag  DW_TAG_subprogram, DW_AT_name("main"), DW_AT_symbol_name("_main")
	.dwattr DW$20, DW_AT_low_pc(_main)
	.dwattr DW$20, DW_AT_high_pc(0x00)
	.dwattr DW$20, DW_AT_begin_file("FFT256c.c")
	.dwattr DW$20, DW_AT_begin_line(0x10)
	.dwattr DW$20, DW_AT_begin_column(0x01)
	.dwpsn	"FFT256c.c",17,1

	.dwfde DW$CIE

;******************************************************************************
;* FUNCTION NAME: _main                                                       *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,B0,B1,B2,B3,B4,*
;*                           B5,B6,B7,B8,B9,B10,B11,B12,B13,SP                *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,B0,B1,B2,B3,B4,*
;*                           B5,B6,B7,B8,B9,B10,B11,B12,B13,DP,SP             *
;*   Local Frame Size  : 0 Args + 0 Auto + 28 Save = 28 byte                  *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o1) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_main:
;** --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 126, 19
           STW     .D2T2   B13,*SP--(32)     ; |17| 
	.dwcfa	0x0e, 32
	.dwcfa	0x80, 29, 0
           STW     .D2T2   B11,*+SP(28)      ; |17| 
	.dwcfa	0x80, 27, 1
           STW     .D2T2   B10,*+SP(24)      ; |17| 
	.dwcfa	0x80, 26, 2
           STW     .D2T2   B12,*+SP(20)      ; |17| 
	.dwcfa	0x80, 28, 3
           STW     .D2T2   B3,*+SP(16)       ; |17| 
	.dwcfa	0x80, 19, 4
           STW     .D2T1   A11,*+SP(12)      ; |17| 
	.dwcfa	0x80, 11, 5
           STW     .D2T1   A10,*+SP(8)       ; |17| 
	.dwcfa	0x80, 10, 6
	.dwpsn	"FFT256c.c",18,7
           ZERO    .L2     B4                ; |18| 

           STH     .D2T2   B4,*+DP(_i)       ; |18| 
||         ZERO    .L2     B10               ; |21| 
||         MVK     .S1     256,A10           ; |18| 
||         ZERO    .S2     B12               ; |20| 

;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Software pipelining disabled
;*----------------------------------------------------------------------------*
L1:    
DW$L$_main$2$B:
	.dwpsn	"FFT256c.c",20,4

           LDH     .D2T2   *+DP(_i),B4       ; |20| 
||         MVKL    .S1     0x54442d11,A4     ; |20| 
||         ZERO    .L2     B13               ; |20| 
||         MVKL    .S2     RL0,B3            ; |20| 

           MVKL    .S1     0x401921fb,A5     ; |20| 
||         MVKH    .S2     0x3f600000,B13    ; |20| 

           MVKH    .S1     0x54442d11,A4     ; |20| 
||         MVKH    .S2     RL0,B3            ; |20| 

           MVKH    .S1     0x401921fb,A5     ; |20| 
           NOP             1
           INTDP   .L2     B4,B5:B4          ; |20| 
           NOP             4
           MPYDP   .M1X    A5:A4,B5:B4,A5:A4 ; |20| 
           NOP             9
           MPYDP   .M1X    B13:B12,A5:A4,A5:A4 ; |20| 
           NOP             3
           CALL    .S1     _cos              ; |20| 
           LDH     .D2T2   *+DP(_i),B11      ; |20| 
           NOP             4
RL0:       ; CALL OCCURS {_cos}              ; |20| 
DW$L$_main$2$E:
;** --------------------------------------------------------------------------*
DW$L$_main$3$B:
           DPSP    .L1     A5:A4,A3          ; |20| 
           MVKL    .S2     _w,B13            ; |20| 
           MVKH    .S2     _w,B13            ; |20| 
           ADDAD   .D2     B13,B11,B4        ; |20| 
           STW     .D2T1   A3,*B4            ; |20| 
	.dwpsn	"FFT256c.c",21,4
           INTDP   .L2     B11,B5:B4         ; |21| 
           MVKL    .S1     0x401921fb,A5     ; |21| 
           MVKL    .S1     0x54442d11,A4     ; |21| 
           MVKH    .S1     0x401921fb,A5     ; |21| 
           MVKH    .S1     0x54442d11,A4     ; |21| 
           MPYDP   .M2X    A5:A4,B5:B4,B5:B4 ; |21| 
           NOP             7
           ZERO    .L2     B11               ; |21| 
           MVKH    .S2     0x3f600000,B11    ; |21| 
           MPYDP   .M2     B11:B10,B5:B4,B5:B4 ; |21| 
           NOP             5
           CALL    .S1     _sin              ; |21| 
           LDH     .D2T2   *+DP(_i),B11      ; |21| 
           NOP             2

           MV      .L1X    B5,A5             ; |21| 
||         MVKL    .S2     RL1,B3            ; |21| 

           MV      .L1X    B4,A4             ; |21| 
||         MVKH    .S2     RL1,B3            ; |21| 

RL1:       ; CALL OCCURS {_sin}              ; |21| 
DW$L$_main$3$E:
;** --------------------------------------------------------------------------*
DW$L$_main$4$B:

           ZERO    .L2     B4                ; |21| 
||         ADDAD   .D2     B13,B11,B9        ; |21| 

           SET     .S2     B4,31,31,B4       ; |21| 
           XOR     .L1X    A5,B4,A5          ; |21| 
           DPSP    .L1     A5:A4,A3          ; |21| 
           NOP             3
           STW     .D2T1   A3,*+B9(4)        ; |21| 
	.dwpsn	"FFT256c.c",18,23
           ADD     .L2     1,B11,B4          ; |18| 

           STH     .D2T2   B4,*+DP(_i)       ; |18| 
||         EXT     .S2     B4,16,16,B4       ; |18| 

	.dwpsn	"FFT256c.c",18,15
           CMPLT   .L1X    B4,A10,A1         ; |18| 
   [ A1]   B       .S1     L1                ; |18| 
           NOP             5
           ; BRANCHCC OCCURS {L1}            ; |18| 
DW$L$_main$4$E:
;** --------------------------------------------------------------------------*
	.dwpsn	"FFT256c.c",23,2

           CALL    .S1     _comm_intr        ; |23| 
||         MVKL    .S2     RL2,B3            ; |23| 

           MVKH    .S2     RL2,B3            ; |23| 
           NOP             4
RL2:       ; CALL OCCURS {_comm_intr}        ; |23| 
;** --------------------------------------------------------------------------*

           MVK     .S2     256,B10           ; |39| 
||         ZERO    .L1     A10               ; |41| 

;** --------------------------------------------------------------------------*
;**   BEGIN LOOP L2
;** --------------------------------------------------------------------------*
L2:    
DW$L$_main$7$B:
	.dwpsn	"FFT256c.c",27,11
           LDH     .D2T2   *+DP(_flag),B0    ; |27| 
           NOP             4
   [!B0]   B       .S1     L2                ; |27| 
           NOP             5
           ; BRANCHCC OCCURS {L2}            ; |27| 
DW$L$_main$7$E:

⌨️ 快捷键说明

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