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

📄 rxchannelest.asm

📁 MIMO 2x2接收端选择全系统仿真代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen                                    PC Version 4.36 *
;* Date/Time created: Wed Jun 01 13:32:07 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	"rxchannelest.c"
	.global	_ChannelState
_ChannelState:	.usect	".far",28,4
	.sym	_ChannelState,_ChannelState, 8, 2, 224, $$fake0
	.global	_pH_hat_r
_pH_hat_r:	.usect	".far",16,4
	.sym	_pH_hat_r,_pH_hat_r, 246, 2, 128,, 2, 2
	.global	_pH_hat_i
_pH_hat_i:	.usect	".far",16,4
	.sym	_pH_hat_i,_pH_hat_i, 246, 2, 128,, 2, 2
	.global	_pH_pre_r
_pH_pre_r:	.usect	".far",32,4
	.sym	_pH_pre_r,_pH_pre_r, 246, 2, 256,, 4, 2
	.global	_pH_pre_i
_pH_pre_i:	.usect	".far",32,4
	.sym	_pH_pre_i,_pH_pre_i, 246, 2, 256,, 4, 2

	.sect	".const"
	.align 4
_S_est_r:
	.word	0bc638e39h		; _S_est_r[0][0] @ 0
	.word	0bc638e39h		; _S_est_r[0][1] @ 32
	.word	0bc638e39h		; _S_est_r[1][0] @ 64
	.word	0bc638e39h		; _S_est_r[1][1] @ 96
	.word	03c638e39h		; _S_est_r[2][0] @ 128
	.word	0bc638e39h		; _S_est_r[2][1] @ 160
	.word	0bc638e39h		; _S_est_r[3][0] @ 192
	.word	0bc638e39h		; _S_est_r[3][1] @ 224
	.word	0bc638e39h		; _S_est_r[4][0] @ 256
	.word	03c638e39h		; _S_est_r[4][1] @ 288
	.word	0bc638e39h		; _S_est_r[5][0] @ 320
	.word	03c638e39h		; _S_est_r[5][1] @ 352
	.word	0bc638e39h		; _S_est_r[6][0] @ 384
	.word	0bc638e39h		; _S_est_r[6][1] @ 416
	.word	0bc638e39h		; _S_est_r[7][0] @ 448
	.word	03c638e39h		; _S_est_r[7][1] @ 480
	.word	03c638e39h		; _S_est_r[8][0] @ 512
	.word	0bc638e39h		; _S_est_r[8][1] @ 544
	.word	03c638e39h		; _S_est_r[9][0] @ 576
	.word	03c638e39h		; _S_est_r[9][1] @ 608
	.word	0bc638e39h		; _S_est_r[10][0] @ 640
	.word	03c638e39h		; _S_est_r[10][1] @ 672
	.word	03c638e39h		; _S_est_r[11][0] @ 704
	.word	03c638e39h		; _S_est_r[11][1] @ 736

	.sect	".text"
	.global	_S_est_r
	.sym	_S_est_r,_S_est_r, 246, 2, 768,, 12, 2

	.sect	".const"
	.align 4
_S_est_i:
	.word	03c638e39h		; _S_est_i[0][0] @ 0
	.word	03c638e39h		; _S_est_i[0][1] @ 32
	.word	03c638e39h		; _S_est_i[1][0] @ 64
	.word	03c638e39h		; _S_est_i[1][1] @ 96
	.word	0bc638e39h		; _S_est_i[2][0] @ 128
	.word	03c638e39h		; _S_est_i[2][1] @ 160
	.word	03c638e39h		; _S_est_i[3][0] @ 192
	.word	03c638e39h		; _S_est_i[3][1] @ 224
	.word	03c638e39h		; _S_est_i[4][0] @ 256
	.word	0bc638e39h		; _S_est_i[4][1] @ 288
	.word	03c638e39h		; _S_est_i[5][0] @ 320
	.word	0bc638e39h		; _S_est_i[5][1] @ 352
	.word	03c638e39h		; _S_est_i[6][0] @ 384
	.word	03c638e39h		; _S_est_i[6][1] @ 416
	.word	03c638e39h		; _S_est_i[7][0] @ 448
	.word	0bc638e39h		; _S_est_i[7][1] @ 480
	.word	0bc638e39h		; _S_est_i[8][0] @ 512
	.word	03c638e39h		; _S_est_i[8][1] @ 544
	.word	0bc638e39h		; _S_est_i[9][0] @ 576
	.word	0bc638e39h		; _S_est_i[9][1] @ 608
	.word	03c638e39h		; _S_est_i[10][0] @ 640
	.word	0bc638e39h		; _S_est_i[10][1] @ 672
	.word	0bc638e39h		; _S_est_i[11][0] @ 704
	.word	0bc638e39h		; _S_est_i[11][1] @ 736

	.sect	".text"
	.global	_S_est_i
	.sym	_S_est_i,_S_est_i, 246, 2, 768,, 12, 2
;	c:\ti\c6000\cgtools\bin\opt6x.exe -v6710 -s -O3 C:\DOCUME~1\SBPRJ-~1\LOCALS~1\Temp\TI632_2 C:\DOCUME~1\SBPRJ-~1\LOCALS~1\Temp\TI632_5 -w C:/ti/myprojects/mimo/receiver/Debug 

	.sect	".text"
	.global	_channelestimation
	.sym	_channelestimation,_channelestimation, 32, 2, 0
	.func	127

;******************************************************************************
;* FUNCTION NAME: _channelestimation                                          *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,   *
;*                           A15,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,A13,A14,   *
;*                           A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,   *
;*                           B13,SP                                           *
;*   Local Frame Size  : 0 Args + 12 Auto + 44 Save = 56 byte                 *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_channelestimation:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_pChannelState,4, 24, 17, 32, $$fake0
	.sym	C$1,20, 22, 4, 32
	.sym	C$2,22, 6, 4, 32
	.sym	C$3,0, 22, 4, 32
	.sym	C$4,3, 214, 4, 32,, 2
	.sym	C$5,5, 4, 4, 32
	.sym	C$6,20, 22, 4, 32
	.sym	C$7,4, 4, 4, 32
	.sym	C$8,7, 4, 4, 32
	.sym	C$9,0, 4, 4, 32
	.sym	C$10,20, 22, 4, 32
	.sym	C$11,20, 22, 4, 32
	.sym	C$12,6, 214, 4, 32,, 2
	.sym	C$13,0, 3, 4, 16
	.sym	C$14,3, 22, 4, 32
	.sym	C$15,3, 3, 4, 16
	.sym	C$16,16, 22, 4, 32
	.sym	C$17,17, 6, 4, 32
	.sym	C$18,2, 6, 4, 32
	.sym	C$19,20, 6, 4, 32
	.sym	C$20,4, 6, 4, 32
	.sym	C$21,0, 22, 4, 32
	.sym	C$22,4, 4, 4, 32
	.sym	C$23,12, 6, 4, 32
	.sym	C$24,0, 24, 4, 32, $$fake1
	.sym	C$25,3, 24, 4, 32, $$fake1
	.sym	C$26,21, 22, 4, 32
	.sym	C$27,20, 6, 4, 32
	.sym	C$28,21, 22, 4, 32
	.sym	V$0,7, 6, 4, 32
	.sym	V$1,24, 6, 4, 32
	.sym	V$2,26, 6, 4, 32
	.sym	V$3,12, 6, 4, 32
	.sym	V$4,25, 6, 4, 32
	.sym	V$5,11, 6, 4, 32
	.sym	V$6,10, 6, 4, 32
	.sym	V$7,23, 6, 4, 32
	.sym	_pChannelState,8, 24, 4, 32, $$fake0
	.sym	_i,13, 4, 4, 32
	.sym	_factor,28, 6, 4, 32
	.sym	_offs,14, 4, 4, 32
	.sym	_buflen,29, 4, 4, 32
	.sym	_RECIV_TRAIN_SEQ_I_1,3, 6, 4, 32
	.sym	_RECIV_TRAIN_SEQ_Q_1,5, 6, 4, 32
	.sym	_RECIV_TRAIN_SEQ_I_2,1, 6, 4, 32
	.sym	_RECIV_TRAIN_SEQ_Q_2,6, 6, 4, 32
	.sym	L$1,21, 4, 4, 32
	.sym	U$64,27, 22, 4, 32
	.sym	U$69,9, 22, 4, 32
	.sym	U$57,12, 22, 1, 32
	.sym	U$53,4, 22, 1, 32
	.sym	U$48,22, 22, 4, 32
	.sym	U$44,8, 22, 1, 32
;** 138	-----------------------    offs = pChannelState->ioffset;
;** 139	-----------------------    buflen = pChannelState->ibuflen;
;** 140	-----------------------    factor = pChannelState->alpha;
;** 142	-----------------------    C$27 = C$23 = 0.0F;
;** 142	-----------------------    C$28 = &pH_hat_r[0];
;** 142	-----------------------    *C$28 = C$27;
;** 143	-----------------------    C$28[1] = C$27;
;** 144	-----------------------    *((float (*)[2])C$28+8) = C$27;
;** 145	-----------------------    *((float (*)[2])C$28+12) = C$27;
;** 148	-----------------------    C$26 = &pH_hat_i[0];
;** 148	-----------------------    *C$26 = C$27;
;** 149	-----------------------    C$26[1] = C$27;
;** 150	-----------------------    *((float (*)[2])C$26+8) = C$27;
;** 151	-----------------------    *((float (*)[2])C$26+12) = C$27;
;**  	-----------------------    C$25 = pChannelState->pfCplxSymbBuff1;
;**  	-----------------------    U$44 = C$25->pIBuffer;
;**  	-----------------------    U$48 = C$25->pQBuffer;
;**  	-----------------------    C$24 = pChannelState->pfCplxSymbBuff2;
;**  	-----------------------    U$53 = C$24->pIBuffer;
;**  	-----------------------    U$57 = C$24->pQBuffer;
;** 155	-----------------------    L$1 = 12;
;**  	-----------------------    U$69 = &S_est_i[-2];
;**  	-----------------------    U$64 = &S_est_r[-2];
;**  	-----------------------    V$7 = C$23;
;**  	-----------------------    V$6 = V$7;
;**  	-----------------------    V$5 = V$6;
;**  	-----------------------    V$4 = V$5;
;**  	-----------------------    V$3 = V$4;
;**  	-----------------------    V$2 = V$3;
;**  	-----------------------    V$1 = V$2;
;**  	-----------------------    V$0 = V$1;
;** 155	-----------------------    i = 0;
;**  	-----------------------    #pragma MUST_ITERATE(12, 12, 12)
;**  	-----------------------    #pragma LOOP_FLAGS(4096u)

           STW     .D2T1   A15,*SP--(56)     ; |128| 
||         MV      .S1X    SP,A9             ; |128| 

           STW     .D2T2   B13,*+SP(52)
           STW     .D2T2   B12,*+SP(48)
           STW     .D2T2   B11,*+SP(44)

           STW     .D2T2   B10,*+SP(40)
||         STW     .D1T1   A13,*-A9(28)

           STW     .D2T2   B3,*+SP(36)
||         STW     .D1T1   A12,*-A9(32)

           STW     .D2T1   A11,*+SP(20)
           STW     .D2T1   A10,*+SP(16)
           STW     .D1T1   A14,*-A9(24)
           MV      .D1     A4,A8             ; |128| 
	.line	12
           LDW     .D1T1   *+A8(20),A14      ; |138| 
	.line	13
           LDW     .D1T2   *+A8(24),B13      ; |139| 
	.line	14
           LDW     .D1T2   *+A8(8),B12       ; |140| 
	.line	16
           MVKL    .S1     _pH_hat_r,A0      ; |142| 
           MVKH    .S1     _pH_hat_r,A0      ; |142| 

           MV      .S2X    A0,B5             ; |142| 
||         ZERO    .D2     B4                ; |142| 

           ZERO    .D1     A12               ; |142| 
||         STW     .D2T2   B4,*B5            ; |142| 

	.line	17
           STW     .D2T2   B4,*+B5(4)        ; |143| 
	.line	18
           STW     .D2T2   B4,*+B5(8)        ; |144| 
	.line	19
           STW     .D2T2   B4,*+B5(12)       ; |145| 
	.line	22
           MVKL    .S2     _pH_hat_i,B5      ; |148| 
           MVKH    .S2     _pH_hat_i,B5      ; |148| 
           STW     .D2T2   B4,*B5            ; |148| 
	.line	23
           STW     .D2T2   B4,*+B5(4)        ; |149| 
	.line	24
           STW     .D2T2   B4,*+B5(8)        ; |150| 
	.line	25
           LDW     .D1T1   *A8,A3
           LDW     .D1T1   *+A8(4),A0
           NOP             3
           LDW     .D1T2   *+A3(4),B6
           LDW     .D1T1   *A0,A4
           LDW     .D1T1   *A3,A3
           LDW     .D1T1   *+A0(4),A0
           STW     .D2T2   B4,*+B5(12)       ; |151| 
           NOP             1
           STW     .D2T1   A4,*+SP(4)
           STW     .D2T1   A3,*+SP(8)
           STW     .D2T1   A0,*+SP(12)       ; |151| 
	.line	29
           MV      .S2X    A12,B8

           MV      .L2X    A12,B9
||         MVKL    .S2     _S_est_r-8,B11

           MVKH    .S2     _S_est_r-8,B11
||         MVKL    .S1     _S_est_i-8,A9
||         MV      .L2X    A12,B7
||         MV      .D1     A12,A7
||         ZERO    .L1     A13               ; |155| 

           MV      .D1     A12,A10
||         MVK     .S2     0xc,B5            ; |155| 
||         MV      .L1     A12,A11
||         MV      .L2X    A12,B10
||         MVKH    .S1     _S_est_i-8,A9

;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Loop contains a call
;*----------------------------------------------------------------------------*
L1:    
;**	-----------------------g2:
;** 158	-----------------------    C$22 = (offs+i)%buflen;
;** 158	-----------------------    RECIV_TRAIN_SEQ_I_1 = U$44[C$22];
;** 159	-----------------------    RECIV_TRAIN_SEQ_Q_1 = U$48[C$22];
;** 161	-----------------------    RECIV_TRAIN_SEQ_I_2 = U$53[C$22];
;** 162	-----------------------    RECIV_TRAIN_SEQ_Q_2 = U$57[C$22];
;** 175	-----------------------    C$20 = *(U$69 += 2);
;** 175	-----------------------    C$19 = *(U$64 += 2);
;** 175	-----------------------    C$21 = &pH_hat_r[0];
;** 175	-----------------------    *C$21 = V$7 += C$19*RECIV_TRAIN_SEQ_I_1-C$20*RECIV_TRAIN_SEQ_Q_1;
;** 177	-----------------------    C$18 = U$69[1];
;** 177	-----------------------    C$17 = U$64[1];
;** 177	-----------------------    C$21[1] = V$6 += C$17*RECIV_TRAIN_SEQ_I_1-C$18*RECIV_TRAIN_SEQ_Q_1;
;** 179	-----------------------    *((float (*)[2])C$21+8) = V$5 += C$19*RECIV_TRAIN_SEQ_I_2-C$20*RECIV_TRAIN_SEQ_Q_2;
;** 181	-----------------------    *((float (*)[2])C$21+12) = V$4 += C$17*RECIV_TRAIN_SEQ_I_2-C$18*RECIV_TRAIN_SEQ_Q_2;
;** 193	-----------------------    C$16 = &pH_hat_i[0];
;** 193	-----------------------    *C$16 = V$3 += C$19*RECIV_TRAIN_SEQ_Q_1+C$20*RECIV_TRAIN_SEQ_I_1;
;** 195	-----------------------    C$16[1] = V$2 += C$17*RECIV_TRAIN_SEQ_Q_1+C$18*RECIV_TRAIN_SEQ_I_1;
;** 197	-----------------------    *((float (*)[2])C$16+8) = V$1 += C$19*RECIV_TRAIN_SEQ_Q_2+C$20*RECIV_TRAIN_SEQ_I_2;
;** 199	-----------------------    *((float (*)[2])C$16+12) = V$0 += C$17*RECIV_TRAIN_SEQ_Q_2+C$18*RECIV_TRAIN_SEQ_I_2;
;** 202	-----------------------    ++i;
;** 202	-----------------------    if ( --L$1 ) goto g2;
	.line	32
           MVKL    .S2     __remi,B0         ; |158| 
           MVKH    .S2     __remi,B0         ; |158| 
           CALL    .S2     B0                ; |158| 
           MVKL    .S2     RL0,B3            ; |158| 
           MVKH    .S2     RL0,B3            ; |158| 
           MV      .D2     B13,B4            ; |158| 
           ADD     .D1     A13,A14,A4        ; |158| 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -