📄 chan_estimation.asm
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen PC Version 4.36 *
;* Date/Time created: Tue May 31 14:03:07 2005 *
;******************************************************************************
;******************************************************************************
;* GLOBAL FILE PARAMETERS *
;* *
;* Architecture : TMS320C671x *
;* Optimization : Enabled at level 3 *
;* Optimizing for : Speed 1st, size 2nd *
;* Based on options: -o3, -ms1 *
;* Endian : Little *
;* Interrupt Thrshld : Disabled *
;* Memory Model : Large *
;* Calls to RTS : Far *
;* Pipelining : Limited *
;* Speculative Load : Disabled *
;* Memory Aliases : Presume are aliases (pessimistic) *
;* Debug Info : COFF Debug *
;* *
;******************************************************************************
.asg A15, FP
.asg B14, DP
.asg B15, SP
.global $bss
.file "chan_estimation.c"
.global _noise_hat
_noise_hat: .usect ".far",4,4
.sym _noise_hat,_noise_hat, 6, 2, 32
; c:\ti\c6000\cgtools\bin\opt6x.exe -i0 -v6710 -q -O3 -Z1 C:\DOCUME~1\SBPRJ-~1\LOCALS~1\Temp\TI4056_2 C:\DOCUME~1\SBPRJ-~1\LOCALS~1\Temp\TI4056_5 -w F:/black05/DSP/recieverSINE/Debug
.sect ".text"
.global _noise_estimation
.sym _noise_estimation,_noise_estimation, 38, 2, 0
.func 58
;******************************************************************************
;* FUNCTION NAME: _noise_estimation *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;* B6,B7,B8,B9,B10,B11,B12,SP *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;* B6,B7,B8,B9,B10,B11,B12,DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 20 Save = 20 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_noise_estimation:
;** --------------------------------------------------------------------------*
.line 2
.sym _received_empty_pilots,4, 19, 17, 32
.sym _received_empty_pilots,0, 19, 4, 32
STW .D2T2 B12,*SP--(24) ; |59|
STW .D2T2 B11,*+SP(20) ; |59|
STW .D2T2 B10,*+SP(16) ; |59|
STW .D2T2 B3,*+SP(12) ; |59|
STW .D2T1 A10,*+SP(8) ; |59|
MV .D1 A4,A10 ; |59|
.line 8
MVC .S2 CSR,B12
MVK .S2 0x1f,B8 ; |65|
LDH .D1T2 *+A10(4),B4 ; |66| (P) <0,0>
|| SUB .D2 B8,3,B2
|| SUB .S1X B8,2,A1
|| AND .S2 -2,B12,B8
LDH .D1T2 *+A10(2),B9 ; |66| (P) <0,1>
|| MVC .S2 B8,CSR ; interrupts off
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 65
;* Loop opening brace source line : 65
;* Loop closing brace source line : 70
;* Loop Unroll Multiple : 4x
;* Known Minimum Trip Count : 31
;* Known Maximum Trip Count : 31
;* Known Max Trip Count Factor : 31
;* Loop Carried Dependency Bound(^) : 7
;* Unpartitioned Resource Bound : 6
;* Partitioned Resource Bound(*) : 8
;* Resource Partition:
;* A-side B-side
;* .L units 8* 8*
;* .S units 1 0
;* .D units 5 0
;* .M units 1 4
;* .X cross paths 2 1
;* .T address paths 1 4
;* Long read paths 0 0
;* Long write paths 0 0
;* Logical ops (.LS) 0 1 (.L or .S unit)
;* Addition ops (.LSD) 1 3 (.L or .S or .D unit)
;* Bound(.L .S .LS) 5 5
;* Bound(.L .S .D .LS .LSD) 5 4
;*
;* Searching for software pipeline schedule at ...
;* ii = 8 Did not find schedule
;* ii = 9 Schedule found with 4 iterations in parallel
;* Done
;*
;* Epilog not entirely removed
;* Collapsed epilog stages : 1
;*
;* Prolog not removed
;* Collapsed prolog stages : 0
;*
;* Minimum required memory pad : 0 bytes
;*
;* For further improvement on this loop, try option -mh24
;*
;* Minimum safe trip count : 3 (after unrolling)
;*----------------------------------------------------------------------------*
L1: ; PIPED LOOP PROLOG
LDH .D1T2 *+A10(6),B4 ; |66| (P) <0,2>
NOP 2
MPY .M2 B4,B4,B9 ; |66| (P) <0,5>
MPY .M2 B9,B9,B4 ; |66| (P) <0,6>
LDH .D1T2 *A10,B6 ; |66| (P) <0,7>
|| MPY .M2 B4,B4,B5 ; |66| (P) <0,7>
LDH .D1T1 *++A10(8),A0 ; |66| (P) <0,8>
ADD .D2 B9,B4,B8 ; |66| (P) <0,9>
|| ADD .S2 B5,B9,B9 ; |66| (P) <0,9>
|| LDH .D1T2 *+A10(4),B6 ; |66| (P) <1,0>
INTDP .L2 B8,B1:B0 ; |66| (P) <0,10>
|| LDH .D1T2 *+A10(2),B9 ; |66| (P) <1,1>
|| INTDP .L1X B9,A7:A6 ; |66| (P) <0,10>
LDH .D1T2 *+A10(6),B6 ; |66| (P) <1,2>
NOP 1
MPY .M2 B6,B6,B8 ; |66| (P) <0,13>
MPY .M1 A0,A0,A0 ; |66| (P) <0,14>
|| MPY .M2 B6,B6,B9 ; |66| (P) <1,5>
MPY .M2 B9,B9,B10 ; |66| (P) <1,6>
ZERO .L1 A3:A2 ; |65|
|| ADD .D2 B4,B8,B8 ; |66| (P) <0,16>
|| ADD .S2X B5,A0,B4 ; |66| (P) <0,16>
|| MPY .M2 B6,B6,B3 ; |66| (P) <1,7>
|| LDH .D1T2 *A10,B11 ; |66| (P) <1,7>
ZERO .D2 B4
|| INTDP .L1X B8,A9:A8 ; |66| (P) <0,17>
|| LDH .D1T1 *++A10(8),A0 ; |66| (P) <1,8>
|| INTDP .L2 B4,B9:B8 ; |66| (P) <0,17>
ZERO .D2 B5
|| ZERO .L1 A5:A4 ; |65|
|| ADD .S2 B9,B10,B8 ; |66| (P) <1,9>
|| ADD .L2 B3,B9,B9 ; |66| (P) <1,9>
|| LDH .D1T2 *+A10(4),B11 ; |66| (P) <2,0>
ZERO .D2 B6
|| ZERO .S2 B7
|| INTDP .L1X B9,A7:A6 ; |66| (P) <1,10>
|| LDH .D1T2 *+A10(2),B9 ; |66| (P) <2,1>
|| INTDP .L2 B8,B1:B0 ; |66| (P) <1,10>
;** --------------------------------------------------------------------------*
L2: ; PIPED LOOP KERNEL
ADDDP .L2 B1:B0,B7:B6,B7:B6 ; |66| <0,20> ^
|| ADDDP .L1 A7:A6,A5:A4,A5:A4 ; |66| <0,20> ^
|| LDH .D1T2 *+A10(6),B11 ; |66| <2,2>
NOP 1
[ A1] SUB .D1 A1,1,A1 ; |70| <0,22>
|| ADDDP .L1 A9:A8,A3:A2,A3:A2 ; |66| <0,22> ^
|| ADDDP .L2 B9:B8,B5:B4,B5:B4 ; |66| <0,22> ^
|| MPY .M2 B11,B11,B8 ; |66| <1,13>
[ A1] B .S1 L2 ; |70| <0,23>
|| MPY .M1 A0,A0,A0 ; |66| <1,14>
|| MPY .M2 B11,B11,B9 ; |66| <2,5>
MPY .M2 B9,B9,B10 ; |66| <2,6>
ADD .D2 B10,B8,B8 ; |66| <1,16>
|| ADD .S2X B3,A0,B11 ; |66| <1,16>
|| LDH .D1T2 *A10,B11 ; |66| <2,7>
|| MPY .M2 B11,B11,B3 ; |66| <2,7>
INTDP .L1X B8,A9:A8 ; |66| <1,17>
|| INTDP .L2 B11,B9:B8 ; |66| <1,17>
|| LDH .D1T1 *++A10(8),A0 ; |66| <2,8>
ADD .D2 B9,B10,B8 ; |66| <2,9>
|| ADD .S2 B3,B9,B9 ; |66| <2,9>
|| [ B2] LDH .D1T2 *+A10(4),B11 ; |66| <3,0>
[ B2] SUB .D2 B2,1,B2 ; <0,28>
|| INTDP .L1X B9,A7:A6 ; |66| <2,10>
|| INTDP .L2 B8,B1:B0 ; |66| <2,10>
|| [ B2] LDH .D1T2 *+A10(2),B9 ; |66| <3,1>
;** --------------------------------------------------------------------------*
L3: ; PIPED LOOP EPILOG
ADDDP .L1 A7:A6,A5:A4,A5:A4 ; |66| (E) <2,20> ^
|| ADDDP .L2 B1:B0,B7:B6,B7:B6 ; |66| (E) <2,20> ^
NOP 1
MPY .M1 A0,A0,A0 ; |66| (E) <3,14>
|| ADDDP .L2 B9:B8,B5:B4,B5:B4 ; |66| (E) <2,22> ^
|| MPY .M2 B11,B11,B8 ; |66| (E) <3,13>
|| ADDDP .L1 A9:A8,A3:A2,A3:A2 ; |66| (E) <2,22> ^
NOP 1
ADD .S2X B3,A0,B11 ; |66| (E) <3,16>
|| ADD .D2 B10,B8,B8 ; |66| (E) <3,16>
NOP 1
INTDP .L2 B11,B9:B8 ; |66| (E) <3,17>
|| INTDP .L1X B8,A9:A8 ; |66| (E) <3,17>
ADDDP .L1 A7:A6,A5:A4,A5:A4 ; |66| (E) <3,20> ^
|| ADDDP .L2 B1:B0,B7:B6,B7:B6 ; |66| (E) <3,20> ^
MVC .S2 B12,CSR ; interrupts on
NOP 2
ADDDP .L1 A9:A8,A3:A2,A3:A2 ; |66| (E) <3,22> ^
|| ADDDP .L2 B9:B8,B5:B4,B5:B4 ; |66| (E) <3,22> ^
NOP 2
MV .S1X B7,A1
MV .S1X B6,A0
NOP 2
MV .S1X B5,A7
MV .S1X B4,A6
.line 14
ZERO .D2 B4 ; |71|
|| ZERO .L2 B5 ; |71|
|| MVKL .S2 RL0,B3 ; |71|
|| ADDDP .L1 A1:A0,A3:A2,A1:A0 ; |71|
MVKH .S2 0x405f0000,B5 ; |71|
MVKH .S2 RL0,B3 ; |71|
NOP 4
ADDDP .L1 A5:A4,A1:A0,A1:A0 ; |71|
NOP 6
ADDDP .L1 A7:A6,A1:A0,A5:A4 ; |71|
MVKL .S1 __divd,A0 ; |71|
MVKH .S1 __divd,A0 ; |71|
CALL .S2X A0 ; |71|
NOP 5
RL0: ; CALL OCCURS ; |71|
NOP 1
DPSP .L1 A5:A4,A4 ; |71|
.line 15
LDW .D2T2 *+SP(12),B3 ; |72|
LDDW .D2T2 *+SP(16),B11:B10 ; |72|
LDW .D2T1 *+SP(8),A10 ; |72|
LDW .D2T2 *++SP(24),B12 ; |72|
NOP 1
RET .S2 B3 ; |72|
NOP 5
; BRANCH OCCURS ; |72|
.endfunc 72,01c080400h,24
.sect ".text"
.global _noise_estimate2
.sym _noise_estimate2,_noise_estimate2, 38, 2, 0
.func 79
;******************************************************************************
;* FUNCTION NAME: _noise_estimate2 *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,B0,B1,B2,B3,B4,B5,B6,B7, *
;* B8,B9,B10,B11,SP *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,B0,B1,B2,B3,B4,B5,B6,B7, *
;* B8,B9,B10,B11,DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 12 Save = 12 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_noise_estimate2:
;** --------------------------------------------------------------------------*
.line 2
.sym _pilots,4, 22, 17, 32
.sym _workbuffer,20, 22, 17, 32
.sym _h_hat,6, 22, 17, 32
.sym _h_hat,0, 22, 4, 32
.sym _workbuffer,0, 22, 4, 32
.sym _pilots,0, 22, 4, 32
.sym _nre,5, 6, 4, 32
.sym _nim,4, 6, 4, 32
STW .D2T2 B11,*SP--(16) ; |80|
STW .D2T2 B10,*+SP(12) ; |80|
STW .D2T2 B3,*+SP(8) ; |80|
MV .D1 A6,A0 ; |80|
|| SUB .D2 B4,8,B3
|| MV .S2X A4,B8 ; |80|
.line 7
MVK .S2 0x7c,B6 ; |85|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -