📄 rxchannelest.asm
字号:
;******************************************************************************
;* 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 + -