📄 dsk_app.asm
字号:
.field _mcbspCfg1+0,32
.field 0,32 ; _mcbspCfg1._spcr @ 0
.field 320,32 ; _mcbspCfg1._rcr @ 32
.field 320,32 ; _mcbspCfg1._xcr @ 64
.field 536870913,32 ; _mcbspCfg1._srgr @ 96
.field 0,32 ; _mcbspCfg1._mcr @ 128
.field 0,32 ; _mcbspCfg1._rcer @ 160
.field 0,32 ; _mcbspCfg1._xcer @ 192
.field 3,32 ; _mcbspCfg1._pcr @ 224
IR_7: .set 32
.sect ".text"
_mcbspCfg1: .usect ".far",32,4
.sym _mcbspCfg1,_mcbspCfg1, 8, 3, 256, $$fake2
.sect ".cinit"
.align 8
.field IR_8,32
.field _config+0,32
.field 23,32 ; _config._regs[0] @ 0
.field 23,32 ; _config._regs[1] @ 32
.field 505,32 ; _config._regs[2] @ 64
.field 505,32 ; _config._regs[3] @ 96
.field 17,32 ; _config._regs[4] @ 128
.field 0,32 ; _config._regs[5] @ 160
.field 0,32 ; _config._regs[6] @ 192
.field 67,32 ; _config._regs[7] @ 224
.field 29,32 ; _config._regs[8] @ 256
.field 1,32 ; _config._regs[9] @ 288
IR_8: .set 40
.sect ".text"
.global _config
_config: .usect ".far",40,4
.sym _config,_config, 8, 2, 320, _DSK6713_AIC23_Config
.sect ".cinit"
.align 8
.field 4,32
.field _pingOrPong$1+0,32
.field 0,32 ; _pingOrPong$1 @ 0
.sect ".text"
_pingOrPong$1: .usect ".far",4,4
.sym _pingOrPong,_pingOrPong$1, 14, 3, 32
.sect ".cinit"
.align 8
.field 2,32
.field _xmtdone$2+0,32
.field 0,16 ; _xmtdone$2 @ 0
.sect ".text"
_xmtdone$2: .usect ".far",2,2
.sym _xmtdone,_xmtdone$2, 3, 3, 16
.sect ".cinit"
.align 8
.field 2,32
.field _rcvdone$3+0,32
.field 0,16 ; _rcvdone$3 @ 0
.sect ".text"
_rcvdone$3: .usect ".far",2,2
.sym _rcvdone,_rcvdone$3, 3, 3, 16
.sect ".const"
.align 4
_$T0$4:
.field 65535,16 ; _$T0$4[0] @ 0
.field 1,16 ; _$T0$4[1] @ 16
.field 1,16 ; _$T0$4[2] @ 32
.field 1,16 ; _$T0$4[3] @ 48
.field 65535,16 ; _$T0$4[4] @ 64
.field 65535,16 ; _$T0$4[5] @ 80
.field 1,16 ; _$T0$4[6] @ 96
.field 65535,16 ; _$T0$4[7] @ 112
.sect ".text"
.sym _$T0,_$T0$4, 51, 3, 128,, 8
; c:\ti\c6000\cgtools\bin\opt6x.exe -i0 -v6710 -q -O3 -Z1 C:\DOCUME~1\SBPRJ-~1\LOCALS~1\Temp\TI1760_2 C:\DOCUME~1\SBPRJ-~1\LOCALS~1\Temp\TI1760_5 -w F:/black05/DSP/receiverPIC2/Debug
.sect ".text"
.global _sync
.sym _sync,_sync, 36, 2, 0
.func 862
;******************************************************************************
;* FUNCTION NAME: _sync *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,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,A12,B0,B1,B2, *
;* B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 32 Save = 32 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_sync:
;** --------------------------------------------------------------------------*
.line 2
.sym _in,4, 22, 17, 32
.sym _training_seq,20, 22, 17, 32
.sym _training_seq,29, 22, 4, 32
.sym _in,28, 22, 4, 32
.sym _i,8, 4, 4, 32
.sym _index,11, 4, 4, 32
.sym _max,10, 6, 4, 32
STW .D2T2 B13,*SP--(32) ; |863|
|| MV .S1X SP,A9 ; |863|
STW .D2T2 B11,*+SP(28)
STW .D2T2 B10,*+SP(24)
STW .D2T2 B12,*+SP(20)
STW .D1T1 A10,*-A9(24)
|| STW .D2T2 B3,*+SP(16)
STW .D2T1 A12,*+SP(4)
STW .D1T1 A11,*-A9(20)
MVK .S2 1008,B5
ADD .D2 B5,B4,B5
|| MVK .S2 4032,B6
LDW .D2T1 *+B5(4),A12
|| ADD .S2X B6,A4,B10
|| MVK .S1 4048,A0
MV .S2X A4,B12 ; |863|
|| LDW .D2T2 *B5,B11
|| ADD .D1 A0,A4,A9
|| MV .L2 B4,B13 ; |863|
.line 9
MVK .S2 0xa0,B2 ; |870|
|| ZERO .D2 B3
.line 7
ZERO .D1 A10 ; |868|
|| ZERO .S1 A7 ; |868|
.line 6
ZERO .D1 A11 ; |867|
.line 9
ZERO .D1 A8 ; |870|
;** --------------------------------------------------------------------------*
;** BEGIN LOOP L1
;** --------------------------------------------------------------------------*
L1:
.line 12
ADD .D2 B3,B12,B4
|| MVC .S2 CSR,B9
|| MVK .S1 64,A0
SUB .D2 B13,16,B4
|| AND .S2 -2,B9,B5
|| SUB .L1X B4,A0,A5
LDW .D2T2 *++B4(16),B5 ; |875| (P) <0,0>
|| MVC .S2 B5,CSR ; interrupts off
|| LDW .D1T1 *++A5(64),A0 ; |875| (P) <0,0>
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 873
;* Loop opening brace source line : 874
;* Loop closing brace source line : 876
;* Loop Unroll Multiple : 4x
;* Known Minimum Trip Count : 63
;* Known Maximum Trip Count : 63
;* Known Max Trip Count Factor : 63
;* Loop Carried Dependency Bound(^) : 4
;* Unpartitioned Resource Bound : 4
;* Partitioned Resource Bound(*) : 4
;* Resource Partition:
;* A-side B-side
;* .L units 2 2
;* .S units 1 0
;* .D units 4* 4*
;* .M units 2 2
;* .X cross paths 2 2
;* .T address paths 4* 4*
;* Long read paths 0 0
;* Long write paths 0 0
;* Logical ops (.LS) 0 0 (.L or .S unit)
;* Addition ops (.LSD) 0 1 (.L or .S or .D unit)
;* Bound(.L .S .LS) 2 1
;* Bound(.L .S .D .LS .LSD) 3 3
;*
;* Searching for software pipeline schedule at ...
;* ii = 4 Schedule found with 4 iterations in parallel
;* Done
;*
;* Collapsed epilog stages : 3
;* Prolog not entirely removed
;* Collapsed prolog stages : 1
;*
;* Minimum required memory pad : 0 bytes
;*
;* For further improvement on this loop, try option -mh192
;*
;* Minimum safe trip count : 2 (after unrolling)
;*----------------------------------------------------------------------------*
L2: ; PIPED LOOP PROLOG
LDW .D2T2 *+B4(4),B6 ; |875| (P) <0,1>
|| LDW .D1T1 *+A5(16),A0 ; |875| (P) <0,1>
LDW .D1T1 *+A5(32),A0 ; |875| (P) <0,2>
|| LDW .D2T2 *+B4(8),B6 ; |875| (P) <0,2>
LDW .D2T2 *+B4(12),B6 ; |875| (P) <0,3>
|| LDW .D1T1 *+A5(48),A0 ; |875| (P) <0,3>
MV .S2X A7,B7 ; |873|
|| LDW .D1T1 *++A5(64),A0 ; |875| (P) <1,0>
|| LDW .D2T2 *++B4(16),B6 ; |875| (P) <1,0>
MV .S1 A7,A6 ; |873|
|| MV .S2X A7,B5 ; |873|
|| LDW .D1T1 *+A5(16),A0 ; |875| (P) <1,1>
|| LDW .D2T2 *+B4(4),B8 ; |875| (P) <1,1>
|| MPYSP .M1X B5,A0,A3 ; |875| (P) <0,5>
MV .L1 A7,A4 ; |873|
|| MVK .S2 0x3f,B0 ; |873|
|| B .S1 L3 ; |876| (P) <0,10>
|| LDW .D1T1 *+A5(32),A0 ; |875| (P) <1,2>
|| LDW .D2T2 *+B4(8),B8 ; |875| (P) <1,2>
|| MPYSP .M2X B6,A0,B6 ; |875| (P) <0,6>
MVK .S1 0x1,A2 ; init prolog collapse predicate
|| MV .S2 B0,B1
|| SUB .L1X B0,2,A1
|| MPYSP .M2X B6,A0,B6 ; |875| (P) <0,7>
|| LDW .D2T2 *+B4(12),B6 ; |875| (P) <1,3>
|| LDW .D1T1 *+A5(48),A0 ; |875| (P) <1,3>
;** --------------------------------------------------------------------------*
L3: ; PIPED LOOP KERNEL
[!A2] ADDSP .L1 A3,A6,A6 ; |875| <0,12> ^
|| MPYSP .M1X B6,A0,A3 ; |875| <1,8>
|| [ A1] LDW .D1T1 *++A5(64),A0 ; |875| <3,0>
|| [ A1] LDW .D2T2 *++B4(16),B6 ; |875| <3,0>
[ B0] SUB .S2 B0,1,B0 ; |876| <1,9>
|| [ B1] ADDSP .L1 A3,A4,A4 ; |875| <1,9> ^
|| MPYSP .M1X B6,A0,A3 ; |875| <2,5>
|| [ A1] LDW .D1T1 *+A5(16),A0 ; |875| <3,1>
|| [ A1] LDW .D2T2 *+B4(4),B8 ; |875| <3,1>
[ A2] SUB .L1 A2,1,A2 ; <0,14>
|| [ B1] ADDSP .L2 B6,B5,B5 ; |875| <1,10> ^
|| [ B0] B .S1 L3 ; |876| <1,10>
|| MPYSP .M2X B8,A0,B6 ; |875| <2,6>
|| [ A1] LDW .D1T1 *+A5(32),A0 ; |875| <3,2>
|| [ A1] LDW .D2T2 *+B4(8),B8 ; |875| <3,2>
[ B1] SUB .S2 B1,1,B1 ; <0,15>
|| [ A1] SUB .S1 A1,1,A1 ; <0,15>
|| [ B1] ADDSP .L2 B6,B7,B7 ; |875| <1,11> ^
|| MPYSP .M2X B8,A0,B6 ; |875| <2,7>
|| [ A1] LDW .D1T1 *+A5(48),A0 ; |875| <3,3>
|| [ A1] LDW .D2T2 *+B4(12),B6 ; |875| <3,3>
;** --------------------------------------------------------------------------*
L4: ; PIPED LOOP EPILOG
;** --------------------------------------------------------------------------*
NOP 2
MV .S1X B5,A5
MV .S1X B7,A3
|| MVC .S2 B9,CSR ; interrupts on
.line 16
LDW .D1T1 *A9++,A4 ; |877|
|| LDW .D2T2 *B10++,B4 ; |877|
|| ADDSP .L1 A5,A4,A0 ; |877|
NOP 3
ADDSP .L1 A3,A0,A0 ; |877|
NOP 2
MPYSP .M1 A12,A4,A3 ; |877|
|| MPYSP .M2 B11,B4,B4 ; |877|
ADDSP .L1 A6,A0,A0 ; |877|
NOP 3
ADDSP .L1X B4,A0,A0 ; |877|
NOP 3
ADDSP .L1 A3,A0,A0 ; |877|
NOP 3
CMPGTSP .S1 A0,A10,A1 ; |877|
.line 17
[ A1] MV .D1 A0,A10 ; |878|
.line 18
[ A1] MV .D1 A8,A11 ; |879|
.line 20
ADD .D1 1,A8,A8 ; |881|
|| ADD .D2 4,B3,B3 ; |881|
|| SUB .S2 B2,1,B2 ; |881|
[ B2] B .S2 L1 ; |881|
NOP 5
; BRANCH OCCURS ; |881|
;** --------------------------------------------------------------------------*
.line 21
MV .D1 A11,A4 ; |882|
.line 22
LDW .D2T2 *+SP(16),B3 ; |883|
LDW .D2T2 *+SP(20),B12 ; |883|
MV .S1X SP,A9 ; |883|
LDW .D1T1 *+A9(4),A12 ; |883|
NOP 1
RET .S2 B3 ; |883|
|| LDDW .D2T2 *+SP(24),B11:B10 ; |883|
LDW .D2T2 *++SP(32),B13 ; |883|
|| LDDW .D1T1 *+A9(8),A11:A10 ; |883|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -