📄 fft256c.asm
字号:
;******************************************************************************
;* 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 + -