📄 rxsync.asm
字号:
;*----------------------------------------------------------------------------*
L2: ; PIPED LOOP PROLOG
MVK .S1 0x2,A2 ; init prolog collapse predicate
|| MVK .S2 80,B4
|| LDH .D1T1 *++A5(4),A4 ; |106| (P) <0,0>
|| LDH .D2T2 *++B5(4),B1 ; |104| (P) <0,0>
|| ADD .L2X A13,B6,B9
|| ADD .L1 A13,A7,A0
ZERO .S2 B13 ; |97|
|| MVK .S1 80,A0
|| LDH .D2T2 *+B5(2),B10 ; |104| (P) <0,1>
|| LDH .D1T1 *+A5(2),A8 ; |106| (P) <0,1>
|| ADD .L1 A13,A4,A4
|| SUB .L2X A0,B4,B6
ZERO .D1 A10 ; |97|
|| ZERO .S2 B7 ; |97|
|| MVK .S1 80,A3
|| ADD .L1 A13,A3,A4
|| SUB .L2X A4,B4,B4
|| LDW .D2T2 *++B6(80),B3 ; |104| (P) <0,2>
ZERO .L2 B9 ; |97|
|| MVK .S2 0x1,B0 ; init prolog collapse predicate
|| MVK .S1 6,A1 ; |102|
|| SUB .D1 A4,A3,A0
|| SUB .L1X B9,A0,A7
|| LDW .D2T2 *++B4(80),B10 ; |106| (P) <0,3>
;** --------------------------------------------------------------------------*
L3: ; PIPED LOOP KERNEL
[!A2] ADDSP .L2 B12,B7,B7 ; |106| <0,16> ^
|| [!A2] ADDSP .L1X B13,A12,A12 ; |104| <0,16> ^
|| [ A1] B .S1 L3 ; |109| <0,16>
|| MPYSP .M2X A4,B1,B12 ; |106| <1,10>
|| MPYSP .M1 A4,A8,A4 ; |106| <1,10>
|| LDW .D2T2 *+B4(40),B1 ; |106| <2,4>
|| LDW .D1T1 *++A0(80),A3 ; |106| <2,4>
[!A2] ADDSP .L2 B7,B9,B9 ; |104| <0,17> ^
|| [!A2] ADDSP .L1 A6,A10,A10 ; |106| <0,17> ^
|| MPYSP .M2 B2,B11,B2 ; |104| <1,11>
|| MPYSP .M1X A11,B10,A4 ; |106| <1,11>
|| LDW .D2T2 *+B6(40),B11 ; |104| <2,5>
|| LDW .D1T1 *+A0(40),A8 ; |106| <2,5>
[!A2] ADDSP .L2 B7,B8,B8 ; |104| <0,18> ^
|| [!B0] MPYSP .M2 B11,B3,B13 ; |104| <1,12>
|| [!B0] MPYSP .M1 A11,A3,A6 ; |106| <1,12>
|| INTSP .L1 A8,A4 ; |106| <2,6>
|| LDH .D2T2 *++B5(4),B1 ; |104| <3,0>
|| LDH .D1T1 *++A5(4),A4 ; |106| <3,0>
[!B0] MPYSP .M2X B11,A3,B7 ; |104| <1,13>
|| INTSP .L2 B10,B2 ; |104| <2,7>
|| INTSP .L1 A4,A11 ; |106| <2,7>
|| LDH .D2T2 *+B5(2),B10 ; |104| <3,1>
|| LDH .D1T1 *+A5(2),A8 ; |106| <3,1>
[ A2] SUB .S1 A2,1,A2 ; <0,20>
|| [!B0] MPYSP .M2X B2,A3,B7 ; |104| <1,14>
|| [!B0] ADDSP .L1 A4,A6,A6 ; |106| <1,14> ^
|| LDW .D1T1 *++A7(80),A3 ; |104| <2,8>
|| INTSP .L2 B1,B11 ; |104| <2,8>
|| LDW .D2T2 *++B6(80),B3 ; |104| <3,2>
[ B0] SUB .S2 B0,1,B0 ; <0,21>
|| [ A1] SUB .S1 A1,1,A1 ; |109| <1,15>
|| [!B0] ADDSP .L2 B2,B13,B13 ; |104| <1,15> ^
|| [!B0] ADDSP .L1 A4,A9,A9 ; |106| <1,15> ^
|| LDW .D1T1 *+A7(40),A3 ; |104| <2,9>
|| LDW .D2T2 *++B4(80),B10 ; |106| <3,3>
;** --------------------------------------------------------------------------*
L4: ; PIPED LOOP EPILOG
;** ----------------------- V$0 = I$5+I$6+I$7+I$8;
;** ----------------------- V$1 = I$1+I$2+I$3+I$4;
;** 111 ----------------------- Q$1[i] = C$9 = V$1*V$1+V$0*V$0;
;** 113 ----------------------- if ( C$9 <= sync_max ) goto g7;
;** 114 ----------------------- sync_max = C$9;
;** 115 ----------------------- sync_index = i;
;** -----------------------g7:
;** 117 ----------------------- U$18 += 4;
;** 117 ----------------------- ++i;
;** 117 ----------------------- if ( --L$1 ) goto g2;
ADDSP .L1X B13,A12,A0 ; |104| (E) <1,16> ^
|| MPYSP .M2X A4,B1,B6 ; |106| (E) <2,10>
|| MPYSP .M1 A4,A8,A4 ; |106| (E) <2,10>
|| LDW .D2T2 *+B4(40),B8 ; |106| (E) <3,4>
|| LDW .D1T1 *++A0(80),A4 ; |106| (E) <3,4>
|| ADDSP .L2 B12,B7,B5 ; |106| (E) <1,16> ^
ADDSP .L1 A6,A10,A3 ; |106| (E) <1,17> ^
|| MPYSP .M2 B2,B11,B9 ; |104| (E) <2,11>
|| MPYSP .M1X A11,B10,A5 ; |106| (E) <2,11>
|| LDW .D2T2 *+B6(40),B9 ; |104| (E) <3,5>
|| LDW .D1T1 *+A0(40),A8 ; |106| (E) <3,5>
|| ADDSP .L2 B7,B9,B7 ; |104| (E) <1,17> ^
LDW .D2T2 *+SP(36),B4
|| MPYSP .M2 B11,B3,B1 ; |104| (E) <2,12>
|| MPYSP .M1 A11,A3,A5 ; |106| (E) <2,12>
|| INTSP .L1 A8,A6 ; |106| (E) <3,6>
|| ADDSP .L2 B7,B8,B0 ; |104| (E) <1,18> ^
INTSP .L2 B10,B6 ; |104| (E) <3,7>
|| INTSP .L1 A4,A11 ; |106| (E) <3,7>
|| MPYSP .M2X B11,A3,B5 ; |104| (E) <2,13>
MPYSP .M2X B2,A3,B7 ; |104| (E) <2,14>
|| LDW .D1T1 *++A7(80),A3 ; |104| (E) <3,8>
|| INTSP .L2 B1,B5 ; |104| (E) <3,8>
|| ADDSP .L1 A4,A6,A0 ; |106| (E) <2,14> ^
ADDSP .L1 A5,A9,A5 ; |106| (E) <2,15> ^
|| LDW .D1T1 *+A7(40),A4 ; |104| (E) <3,9>
|| ADDSP .L2 B9,B13,B8 ; |104| (E) <2,15> ^
ADDSP .L1X B1,A0,A6 ; |104| (E) <2,16> ^
|| MPYSP .M2X A6,B8,B7 ; |106| (E) <3,10>
|| MPYSP .M1 A6,A8,A3 ; |106| (E) <3,10>
|| ADDSP .L2 B6,B5,B5 ; |106| (E) <2,16> ^
ADDSP .L1 A5,A3,A0 ; |106| (E) <2,17> ^
|| MPYSP .M2 B6,B9,B6 ; |104| (E) <3,11>
|| MPYSP .M1X A11,B10,A3 ; |106| (E) <3,11>
|| ADDSP .L2 B5,B7,B9 ; |104| (E) <2,17> ^
MPYSP .M2 B5,B3,B8 ; |104| (E) <3,12>
|| MPYSP .M1 A11,A4,A3 ; |106| (E) <3,12>
|| ADDSP .L2 B7,B0,B6 ; |104| (E) <2,18> ^
MPYSP .M2X B5,A3,B5 ; |104| (E) <3,13>
ADDSP .L1 A3,A0,A4 ; |106| (E) <3,14> ^
|| MPYSP .M2X B6,A4,B5 ; |104| (E) <3,14>
ADDSP .L2 B6,B8,B8 ; |104| (E) <3,15> ^
|| ADDSP .L1 A3,A5,A0 ; |106| (E) <3,15> ^
ADDSP .L1X B8,A6,A0 ; |104| (E) <3,16> ^
|| ADDSP .L2 B7,B5,B6 ; |106| (E) <3,16> ^
ADDSP .L2 B5,B9,B7 ; |104| (E) <3,17> ^
|| ADDSP .L1 A3,A0,A3 ; |106| (E) <3,17> ^
ADDSP .L2 B5,B6,B5 ; |104| (E) <3,18> ^
MV .S2X A0,B5
NOP 1
MVC .S2 B4,CSR ; interrupts on
|| ADDSP .L2X A3,B5,B4
|| ADDSP .L1X A0,B7,A0
;** --------------------------------------------------------------------------*
NOP 3
ADDSP .L2 B6,B4,B4
|| ADDSP .L1X B5,A0,A0
NOP 3
ADDSP .L1X B8,A0,A4
|| ADDSP .L2X A4,B4,B5
.line 21
LDW .D2T1 *+SP(16),A3
NOP 2
MPYSP .M1 A4,A4,A0 ; |111|
|| MPYSP .M2 B5,B5,B4 ; |111|
NOP 3
ADDSP .L1X B4,A0,A0 ; |111|
NOP 3
STW .D1T1 A0,*+A3[A14] ; |111|
.line 23
LDW .D2T1 *+SP(28),A3
NOP 4
CMPGTSP .S1 A0,A3,A1 ; |113|
.line 24
[ A1] STW .D2T1 A0,*+SP(28) ; |114|
.line 25
[ A1] MV .D1 A14,A0 ; |115|
[ A1] STW .D2T1 A0,*+SP(32) ; |115|
.line 27
ADD .D1 4,A13,A13 ; |117|
|| ADD .S1 1,A14,A14 ; |117|
|| LDW .D2T2 *+SP(24),B4
NOP 4
SUB .D2 B4,1,B4 ; |117|
|| SUB .S1X B4,1,A1 ; |117|
[ A1] B .S2 L1 ; |117|
|| STW .D2T2 B4,*+SP(24) ; |117|
[!A1] MVKL .S1 _fCorrelI,A0
NOP 3
[!A1] MVKL .S2 _fCorrelQ,B4
; BRANCH OCCURS ; |117|
;** --------------------------------------------------------------------------*
;** ----------------------- fCorrelQ = V$0;
;** ----------------------- fCorrelI = V$1;
;** 118 ----------------------- pSyncState->iSyncIndex = sync_index;
;** 118 ----------------------- return;
MVKH .S2 _fCorrelQ,B4
|| MVKH .S1 _fCorrelI,A0
STW .D2T2 B5,*B4
|| STW .D1T1 A4,*A0
.line 28
LDW .D2T1 *+SP(32),A0
NOP 4
STW .D1T1 A0,*+A15(20) ; |118|
.line 29
LDW .D2T2 *+SP(60),B3 ; |119|
MV .S1X SP,A9 ; |119|
LDW .D1T1 *+A9(56),A14 ; |119|
LDDW .D1T1 *+A9(48),A13:A12 ; |119|
LDDW .D2T2 *+SP(64),B11:B10 ; |119|
|| LDDW .D1T1 *+A9(40),A11:A10 ; |119|
RET .S2 B3 ; |119|
|| LDDW .D2T2 *+SP(72),B13:B12 ; |119|
LDW .D2T1 *++SP(80),A15 ; |119|
NOP 4
; BRANCH OCCURS ; |119|
.endfunc 119,03c08fc00h,80
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;******************************************************************************
.global _SYNCSEQUENCE_I
.global _SYNCSEQUENCE_Q
;******************************************************************************
;* TYPE INFORMATION *
;******************************************************************************
.sym _Int16, 0, 3, 13, 16
.sym _Int16, 0, 3, 13, 16
.stag $$fake0, 192
.member _pfRcv1I, 0, 22, 8, 32
.member _pfRcv1Q, 32, 22, 8, 32
.member _pfRcv2I, 64, 22, 8, 32
.member _pfRcv2Q, 96, 22, 8, 32
.member _uiRcvBuffLen, 128, 14, 8, 32
.member _iSyncIndex, 160, 4, 8, 32
.eos
.sym _typRX_SYNCSTATE, 0, 8, 13, 192,$$fake0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -