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

📄 rxdetector.asm

📁 MIMO 2x2接收端选择全系统仿真代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;******************************************************************************
;* 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 + -