📄 rxdetector.asm
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen PC Version 4.36 *
;* Date/Time created: Wed Jun 01 13:32:11 2005 *
;******************************************************************************
;******************************************************************************
;* GLOBAL FILE PARAMETERS *
;* *
;* Architecture : TMS320C671x *
;* Optimization : Enabled at level 3 *
;* Optimizing for : Speed *
;* Based on options: -o3, no -ms *
;* Endian : Little *
;* Interrupt Thrshld : Disabled *
;* Memory Model : Large *
;* Calls to RTS : Far *
;* Pipelining : Enabled *
;* 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 "rxdetector.c"
.global _DetectorStat
_DetectorStat: .usect ".far",44,4
.sym _DetectorStat,_DetectorStat, 8, 2, 352, $$fake0
; c:\ti\c6000\cgtools\bin\opt6x.exe -v6710 -s -O3 C:\DOCUME~1\SBPRJ-~1\LOCALS~1\Temp\TI2876_2 C:\DOCUME~1\SBPRJ-~1\LOCALS~1\Temp\TI2876_5 -w C:/ti/myprojects/mimo/receiver/Debug
.sect ".text"
.sym _MaptoBytes,_MaptoBytes, 34, 3, 0
.func 78
;******************************************************************************
;* FUNCTION NAME: _MaptoBytes *
;* *
;* Regs Modified : A0,A1,A3,A4,B0,B4,B5,B6 *
;* Regs Used : A0,A1,A3,A4,B0,B3,B4,B5,B6 *
;* Local Frame Size : 0 Args + 0 Auto + 0 Save = 0 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_MaptoBytes:
;** --------------------------------------------------------------------------*
.line 2
.sym _Ich,4, 6, 17, 32
.sym _Qch,20, 6, 17, 32
.sym _c,4, 2, 4, 8
.sym _Ich,0, 6, 4, 32
.sym _Qch,20, 6, 4, 32
.sym K$4,22, 6, 4, 32
;** 82 ----------------------- c = 0;
;** 84 ----------------------- if ( Ich > (K$4 = 0.0F) ) goto g3;
;** 98 ----------------------- if ( Ich <= -2.0F ) goto g5;
;** 101 ----------------------- c = 4;
;** 101 ----------------------- goto g5;
;** -----------------------g3:
;** 87 ----------------------- c |= 0x8;
;** 88 ----------------------- if ( Ich > 2.0F ) goto g5;
;** 91 ----------------------- c |= 4;
;** -----------------------g5:
;** 105 ----------------------- (Qch > K$4) ? (c = (char)((Qch <= 2.0F)|c|2)) : (c = (char)((Qch > -2.0F)|c));
;** 112 ----------------------- return c;
MV .D1 A4,A0 ; |79|
.line 5
ZERO .D1 A4 ; |82|
.line 7
ZERO .D2 B6 ; |84|
CMPGTSP .S1X A0,B6,A1 ; |84|
.line 21
[!A1] ZERO .D2 B5 ; |98|
[!A1] MVKH .S2 0xc0000000,B5 ; |98|
[!A1] CMPGTSP .S2X A0,B5,B5 ; |98|
.line 24
CMPEQ .L2 B5,0,B5
OR .S2X B5,A1,B0
[!B0] MVK .S1 0x4,A4 ; |101|
.line 10
[ A1] OR .S1 8,A4,A3 ; |87|
[ A1] EXT .S1 A3,24,24,A4 ; |87|
.line 11
[ A1] ZERO .D1 A3 ; |88|
[ A1] MVKH .S1 0x40000000,A3 ; |88|
[ A1] CMPGTSP .S1 A0,A3,A3 ; |88|
.line 14
CMPEQ .L1 A1,0,A0
OR .S1 A3,A0,A1
[!A1] OR .S1 4,A4,A0 ; |91|
[!A1] EXT .S1 A0,24,24,A4 ; |91|
.line 28
ZERO .D2 B5 ; |105|
MVKH .S2 0x40000000,B5 ; |105|
CMPGTSP .S2 B4,B5,B5 ; |105|
|| ZERO .D1 A0 ; |105|
XOR .S2 1,B5,B5 ; |105|
|| MVKH .S1 0xc0000000,A0 ; |105|
OR .S2X A4,B5,B5 ; |105|
|| CMPGTSP .S1X B4,A0,A0 ; |105|
OR .L2 2,B5,B4 ; |105|
|| OR .S1 A4,A0,A0 ; |105|
|| CMPGTSP .S2 B4,B6,B0 ; |105|
[ B0] MV .S1X B4,A0 ; |105|
EXT .S1 A0,24,24,A4 ; |105|
.line 35
.line 48
RET .S2 B3 ; |125|
NOP 5
; BRANCH OCCURS ; |125|
.endfunc 125,000000000h,0
.sect ".text"
.sym _Detect,_Detect, 32, 3, 0
.func 142
;******************************************************************************
;* FUNCTION NAME: _Detect *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,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,A11,A12,A13,A14,B0,*
;* B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,SP *
;* Local Frame Size : 16 Args + 0 Auto + 36 Save = 52 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_Detect:
;** --------------------------------------------------------------------------*
.line 2
.sym _pDetectorStat,4, 24, 17, 32, $$fake0
.sym C$1,0, 18, 4, 32
.sym C$2,0, 18, 4, 32
.sym C$3,21, 14, 4, 32
.sym C$4,0, 24, 4, 32, $$fake1
.sym C$5,0, 24, 4, 32, $$fake1
.sym _Qch_2,14, 22, 4, 32
.sym _Ich_2,13, 22, 4, 32
.sym _Qch_1,28, 22, 4, 32
.sym _Ich_1,27, 22, 4, 32
.sym _uiNibble,26, 14, 4, 32
.sym _b,4, 2, 4, 8
.sym _a,23, 2, 4, 8
.sym _idx,5, 4, 4, 32
.sym _p,12, 4, 4, 32
.sym _data_len,20, 4, 4, 32
.sym _pDetectorStat,10, 24, 4, 32, $$fake0
.sym L$1,11, 4, 4, 32
;** 161 ----------------------- data_len = pDetectorStat->uiNoOfSymb;
;** 164 ----------------------- C$5 = pDetectorStat->pfCplxSymbBuff_1;
;** 164 ----------------------- Ich_1 = C$5->pIBuffer;
;** 165 ----------------------- Qch_1 = C$5->pQBuffer;
;** 166 ----------------------- C$4 = pDetectorStat->pfCplxSymbBuff_2;
;** 166 ----------------------- Ich_2 = C$4->pIBuffer;
;** 167 ----------------------- Qch_2 = C$4->pQBuffer;
;** 175 ----------------------- uiNibble = pDetectorStat->nibble;
;** 177 ----------------------- pDetectorStat->uiBytesWritten = 0u;
;** 178 ----------------------- if ( data_len <= 0 ) goto g8;
STW .D2T2 B12,*SP--(56) ; |143|
|| MV .S1X SP,A9 ; |143|
STW .D2T2 B11,*+SP(52)
STW .D1T1 A13,*-A9(20)
|| STW .D2T2 B10,*+SP(48)
STW .D2T2 B3,*+SP(44)
|| STW .D1T1 A12,*-A9(24)
STW .D2T1 A11,*+SP(28)
STW .D2T1 A10,*+SP(24)
STW .D1T1 A14,*-A9(16)
MV .D1 A4,A10 ; |143|
.line 20
LDW .D1T2 *+A10(8),B4 ; |161|
.line 23
LDW .D1T1 *A10,A0 ; |164|
NOP 4
LDW .D1T2 *A0,B11 ; |164|
.line 24
LDW .D1T2 *+A0(4),B12 ; |165|
.line 25
LDW .D1T1 *+A10(4),A0 ; |166|
NOP 4
LDW .D1T1 *A0,A13 ; |166|
.line 26
LDW .D1T1 *+A0(4),A14 ; |167|
.line 34
LDW .D1T2 *+A10(32),B10 ; |175|
.line 36
ZERO .D1 A0 ; |177|
STW .D1T1 A0,*+A10(40) ; |177|
.line 37
CMPGT .L2 B4,0,B0 ; |178|
[!B0] B .S1 L5 ; |178|
NOP 5
; BRANCH OCCURS ; |178|
;** --------------------------------------------------------------------------*
;** 181 ----------------------- L$1 = data_len;
;** 178 ----------------------- p = 0;
;** ----------------------- #pragma MUST_ITERATE(1, 1099511627775, 1)
;** ----------------------- #pragma LOOP_FLAGS(5120u)
.line 40
MV .S1X B4,A11 ; |181|
.line 37
ZERO .D1 A12 ; |178|
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;* Disqualified loop: Loop contains control code
;*----------------------------------------------------------------------------*
L1:
;** -----------------------g3:
;** 181 ----------------------- idx = C$3 = (pDetectorStat->uiNextSymb+(unsigned)p)%pDetectorStat->uiBufLen;
;** 182 ----------------------- a = MaptoBytes(Ich_1[C$3], Qch_1[C$3]);
;** 183 ----------------------- b = MaptoBytes(Ich_2[idx], Qch_2[idx]);
;** 185 ----------------------- switch ( uiNibble ) {...};
.line 40
MVKL .S1 __remu,A0 ; |181|
MVKH .S1 __remu,A0 ; |181|
CALL .S2X A0 ; |181|
|| LDW .D1T1 *+A10(16),A3 ; |181|
LDW .D1T2 *+A10(12),B4 ; |181|
MVKL .S2 RL0,B3 ; |181|
MVKH .S2 RL0,B3 ; |181|
NOP 1
ADD .D1 A12,A3,A4 ; |181|
RL0: ; CALL OCCURS ; |181|
MV .D1 A4,A5 ; |181|
|| MV .S2X A4,B5 ; |181|
.line 41
MVKL .S1 _MaptoBytes,A0 ; |182|
MVKH .S1 _MaptoBytes,A0 ; |182|
CALL .S2X A0 ; |182|
|| LDW .D2T2 *+B12[B5],B4 ; |182|
LDW .D2T1 *+B11[B5],A4 ; |182|
MVKL .S2 RL1,B3 ; |182|
MVKH .S2 RL1,B3 ; |182|
NOP 2
RL1: ; CALL OCCURS ; |182|
MV .S2X A4,B7 ; |182|
.line 42
MVKL .S2 _MaptoBytes,B5 ; |183|
MVKH .S2 _MaptoBytes,B5 ; |183|
CALL .S2 B5 ; |183|
|| LDW .D1T2 *+A14[A5],B4 ; |183|
LDW .D1T1 *+A13[A5],A4 ; |183|
MVKL .S2 RL2,B3 ; |183|
MVKH .S2 RL2,B3 ; |183|
NOP 2
RL2: ; CALL OCCURS ; |183|
.line 44
MV .D2 B10,B0 ; |185|
[!B0] B .S1 L3 ; |185|
[ B0] CMPEQ .L2 B0,1,B0 ; |185|
NOP 4
; BRANCH OCCURS ; |185|
;** --------------------------------------------------------------------------*
[ B0] B .S1 L2 ; |185|
NOP 5
; BRANCH OCCURS ; |185|
;** --------------------------------------------------------------------------*
;** -----------------------g4:
;** 201 ----------------------- LOG_printf(&trace, "Value forbidden: file %s, line %d", "rxdetector.c", 201);
;** 201 ----------------------- goto g7;
.line 60
MVKL .S2 _LOG_printf,B5 ; |201|
MVKH .S2 _LOG_printf,B5 ; |201|
CALL .S2 B5 ; |201|
MVKL .S1 SL1+0,A3 ; |201|
|| MVKL .S2 SL2+0,B4 ; |201|
MVK .S1 201,A0 ; |201|
|| MVKH .S2 SL2+0,B4 ; |201|
STW .D2T2 B4,*+SP(4) ; |201|
|| MVKH .S1 SL1+0,A3 ; |201|
STW .D2T1 A3,*+SP(8) ; |201|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -