📄 mainfilter.asm
字号:
STW .D1T1 A6,*+A0(8) ; |296|
|| LDW .D2T2 *+DP(_mcbspCfg0+28),B5 ; |294|
STW .D1T1 A5,*+A0(12) ; |297|
STW .D1T1 A3,*+A0(16) ; |298|
STW .D1T2 B7,*+A0(20) ; |299|
STW .D1T2 B8,*+A0(24) ; |300|
STW .D1T2 B9,*+A0(28) ; |301|
STW .D1T2 B6,*+A0(32) ; |302|
STW .D1T2 B5,*+A0(36) ; |303|
MVC .S2 CSR,B5 ; |276|
|| STW .D1T2 B0,*+A0(8) ; |304|
AND .S2 -2,B5,B5 ; |276|
|| AND .L2 1,B4,B4 ; |276|
OR .S2 B4,B5,B4 ; |276|
MVC .S2 B4,CSR ; |276|
MVKL .S1 _MCBSP_start,A0 ; |171|
MVKH .S1 _MCBSP_start,A0 ; |171|
CALLRET .S2X A0 ; |171|
LDW .D2T2 *++SP(8),B3 ; |173|
MVK .S1 0xdc,A6 ; |171|
MVK .S2 0xf,B4 ; |171|
NOP 2
RL11: ; CALL OCCURS ; |173| ; bypass _iis0_init upon return
.sect ".text"
.global _iis1_init
;******************************************************************************
;* FUNCTION NAME: _iis1_init *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6, *
;* B7,B8,B9,SP *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6, *
;* B7,B8,B9,DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 4 Save = 4 byte *
;******************************************************************************
_iis1_init:
;** --------------------------------------------------------------------------*
;** 176 ----------------------- hMcbsp1 = Y$0 = MCBSP_open(1, 1u);
;** 280 ----------------------- base = Y$0->baseAddr; // [13]
;** 270 ----------------------- gie = CSR&1u; // [5]
;** 271 ----------------------- CSR = CSR&0xfffffffeu; // [5]
;** 287 ----------------------- x0 = mcbspCfg1.spcr; // [13]
;** 288 ----------------------- x1 = mcbspCfg1.rcr; // [13]
;** 289 ----------------------- x2 = mcbspCfg1.xcr; // [13]
;** 290 ----------------------- x3 = mcbspCfg1.srgr; // [13]
;** 291 ----------------------- x4 = mcbspCfg1.mcr; // [13]
;** 292 ----------------------- x5 = mcbspCfg1.rcer; // [13]
;** 293 ----------------------- x6 = mcbspCfg1.xcer; // [13]
;** 294 ----------------------- x7 = mcbspCfg1.pcr; // [13]
;** 296 ----------------------- base[2] = 0u; // [13]
;** 297 ----------------------- base[3] = x1; // [13]
;** 298 ----------------------- base[4] = x2; // [13]
;** 299 ----------------------- base[5] = x3; // [13]
;** 300 ----------------------- base[6] = x4; // [13]
;** 301 ----------------------- base[7] = x5; // [13]
;** 302 ----------------------- base[8] = x6; // [13]
;** 303 ----------------------- base[9] = x7; // [13]
;** 304 ----------------------- base[2] = x0; // [13]
;** 276 ----------------------- CSR = CSR&0xfffffffeu|gie&1u; // [6]
;** 178 ----------------------- MCBSP_start(Y$0, 15u, 220u);
;** 178 ----------------------- return;
MVKL .S1 _MCBSP_open,A0 ; |176|
MVKH .S1 _MCBSP_open,A0 ; |176|
CALL .S2X A0 ; |176|
STW .D2T2 B3,*SP--(8) ; |175|
MVKL .S2 RL12,B3 ; |176|
MVK .S2 0x1,B4 ; |176|
MVKH .S2 RL12,B3 ; |176|
MVK .S1 0x1,A4 ; |176|
RL12: ; CALL OCCURS ; |176|
LDW .D1T1 *+A4(12),A0 ; |280|
NOP 3
MVC .S2 CSR,B4 ; |270|
|| STW .D2T1 A4,*+DP(_hMcbsp1) ; |176|
MVC .S2 CSR,B5 ; |271|
|| AND .L2 1,B4,B4 ; |270|
AND .S2 -2,B5,B5 ; |271|
MVC .S2 B5,CSR ; |271|
LDW .D2T1 *+DP(_mcbspCfg1+4),A5 ; |288|
LDW .D2T1 *+DP(_mcbspCfg1+8),A3 ; |289|
LDW .D2T2 *+DP(_mcbspCfg1+12),B7 ; |290|
LDW .D2T2 *+DP(_mcbspCfg1+16),B8 ; |291|
LDW .D2T2 *+DP(_mcbspCfg1+20),B9 ; |292|
LDW .D2T2 *+DP(_mcbspCfg1+24),B6 ; |293|
LDW .D2T2 *+DP(_mcbspCfg1),B0 ; |287|
|| ZERO .D1 A6 ; |296|
STW .D1T1 A6,*+A0(8) ; |296|
|| LDW .D2T2 *+DP(_mcbspCfg1+28),B5 ; |294|
STW .D1T1 A5,*+A0(12) ; |297|
STW .D1T1 A3,*+A0(16) ; |298|
STW .D1T2 B7,*+A0(20) ; |299|
STW .D1T2 B8,*+A0(24) ; |300|
STW .D1T2 B9,*+A0(28) ; |301|
STW .D1T2 B6,*+A0(32) ; |302|
STW .D1T2 B5,*+A0(36) ; |303|
MVC .S2 CSR,B5 ; |276|
|| STW .D1T2 B0,*+A0(8) ; |304|
AND .S2 -2,B5,B5 ; |276|
|| AND .L2 1,B4,B4 ; |276|
OR .S2 B4,B5,B4 ; |276|
MVC .S2 B4,CSR ; |276|
MVKL .S1 _MCBSP_start,A0 ; |178|
MVKH .S1 _MCBSP_start,A0 ; |178|
CALLRET .S2X A0 ; |178|
LDW .D2T2 *++SP(8),B3 ; |180|
MVK .S1 0xdc,A6 ; |178|
MVK .S2 0xf,B4 ; |178|
NOP 2
RL13: ; CALL OCCURS ; |180| ; bypass _iis1_init upon return
.sect ".text"
.global _initrecsendbuf
;******************************************************************************
;* FUNCTION NAME: _initrecsendbuf *
;* *
;* Regs Modified : A0,A3,A4,A5,A6,A7,B0,B4,B5,B6,B7,B8 *
;* Regs Used : A0,A3,A4,A5,A6,A7,B0,B3,B4,B5,B6,B7,B8,DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 0 Save = 0 byte *
;******************************************************************************
_initrecsendbuf:
;** --------------------------------------------------------------------------*
;** ----------------------- K$2 = 0;
;** ----------------------- K$13 = 0xaaaa5555u;
;** 268 ----------------------- L$1 = 256;
;** ----------------------- U$22 = &gBufferXmtPong[0];
;** ----------------------- U$18 = &gBufferXmtPing[0];
;** ----------------------- U$11 = &gBufferRcvPong[0];
;** ----------------------- U$7 = &gBufferRcvPing[0];
;** 268 ----------------------- i = 0u;
;** ----------------------- #pragma MUST_ITERATE(256, 256, 256)
;** ----------------------- #pragma LOOP_FLAGS(4096u)
;** -----------------------g2:
;** 269 ----------------------- *U$7++ = K$2;
;** 270 ----------------------- *U$11++ = K$2;
;** 271 ----------------------- *U$18++ = C$1 = i+K$13;
;** 272 ----------------------- *U$22++ = C$1;
;** 273 ----------------------- ++i;
;** 273 ----------------------- if ( --L$1 ) goto g2;
MVK .S1 (_gBufferXmtPong-$bss),A4
MVKL .S1 0xaaaa5555,A0
MVK .S2 (_gBufferRcvPing-$bss),B4
|| MVK .S1 (_gBufferXmtPing-$bss),A3
ZERO .D2 B6
|| MVK .S2 0x100,B5 ; |268|
|| MVK .S1 (_gBufferRcvPong-$bss),A5
|| ADD .L2 DP,B4,B4
|| ADD .L1X DP,A3,A3
ZERO .D1 A6 ; |268|
|| SUB .D2 B5,6,B0
|| ADD .L1X DP,A4,A4
|| ADD .L2X DP,A5,B5
|| MVKH .S1 0xaaaa5555,A0
|| MVC .S2 CSR,B7
AND .S2 -2,B7,B8
MVC .S2 B8,CSR ; interrupts off
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 268
;* Loop opening brace source line : 269
;* Loop closing brace source line : 273
;* Known Minimum Trip Count : 256
;* Known Maximum Trip Count : 256
;* Known Max Trip Count Factor : 256
;* Loop Carried Dependency Bound(^) : 1
;* Unpartitioned Resource Bound : 2
;* Partitioned Resource Bound(*) : 2
;* Resource Partition:
;* A-side B-side
;* .L units 0 0
;* .S units 0 1
;* .D units 2* 2*
;* .M units 0 0
;* .X cross paths 0 0
;* .T address paths 2* 2*
;* Long read paths 2* 2*
;* Long write paths 0 0
;* Logical ops (.LS) 0 0 (.L or .S unit)
;* Addition ops (.LSD) 2 1 (.L or .S or .D unit)
;* Bound(.L .S .LS) 0 1
;* Bound(.L .S .D .LS .LSD) 2* 2*
;*
;* Searching for software pipeline schedule at ...
;* ii = 2 Schedule found with 4 iterations in parallel
;* Done
;*
;* Epilog not removed
;* Collapsed epilog stages : 0
;*
;* Prolog not removed
;* Collapsed prolog stages : 0
;*
;* Minimum required memory pad : 0 bytes
;*
;* Minimum safe trip count : 4
;*----------------------------------------------------------------------------*
L3: ; PIPED LOOP PROLOG
B .S2 L4 ; |273| (P) <0,1>
NOP 1
B .S2 L4 ; |273| (P) <1,1>
ADD .D1 A0,A6,A5 ; |271| (P) <0,4> ^
;** --------------------------------------------------------------------------*
L4: ; PIPED LOOP KERNEL
STW .D2T2 B6,*B4++ ; |269| <0,5>
|| ADD .S1 1,A6,A6 ; |273| <0,5> ^
|| STW .D1T1 A5,*A3++ ; |271| <0,5>
|| [ B0] B .S2 L4 ; |273| <2,1>
STW .D2T2 B6,*B5++ ; |270| <0,6>
|| STW .D1T1 A5,*A4++ ; |272| <0,6>
|| ADD .S1 A0,A6,A5 ; |271| <1,4> ^
|| [ B0] SUB .S2 B0,1,B0 ; |273| <3,0>
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 274
;* Loop opening brace source line : 275
;* Loop closing brace source line : 278
;* Loop Unroll Multiple : 2x
;* Known Minimum Trip Count : 500
;* Known Maximum Trip Count : 500
;* Known Max Trip Count Factor : 500
;* Loop Carried Dependency Bound(^) : 1
;* Unpartitioned Resource Bound : 2
;* Partitioned Resource Bound(*) : 2
;* Resource Partition:
;* A-side B-side
;* .L units 0 0
;* .S units 1 0
;* .D units 2* 2*
;* .M units 0 0
;* .X cross paths 0 2*
;* .T address paths 2* 2*
;* Long read paths 2* 2*
;* Long write paths 0 0
;* Logical ops (.LS) 0 2 (.L or .S unit)
;* Addition ops (.LSD) 3 1 (.L or .S or .D unit)
;* Bound(.L .S .LS) 1 1
;* Bound(.L .S .D .LS .LSD) 2* 2*
;*
;* Searching for software pipeline schedule at ...
;* ii = 2 Schedule found with 4 iterations in parallel
;* Done
;*
;* Epilog not removed
;* Collapsed epilog stages : 0
;*
;* Prolog not removed
;* Collapsed prolog stages : 0
;*
;* Minimum required memory pad : 0 bytes
;*
;* Minimum safe trip count : 4 (after unrolling)
;*----------------------------------------------------------------------------*
L5: ; PIPED LOOP EPILOG AND PROLOG
;** 274 ----------------------- // LOOP BELOW UNROLLED BY FACTOR(2)
;** ----------------------- K$29 = 21554u;
;** ----------------------- K$36 = 4096u;
;** ----------------------- K$43 = 21555u;
;** ----------------------- K$49 = 4097u;
;** 274 ----------------------- L$2 = 500;
;** ----------------------- U$41 = &outbuf[-2];
;** ----------------------- U$34 = &inbuf[-2];
;** 274 ----------------------- i = 0u;
;** ----------------------- #pragma MUST_ITERATE(500, 500, 500)
;** ----------------------- #pragma LOOP_FLAGS(4098u)
;** -----------------------g5:
;** 276 ----------------------- *(U$34 += 2) = (int)i+(int)K$29;
;** 277 ----------------------- *(U$41 += 2) = (int)i+(int)K$36;
;** 276 ----------------------- U$34[1] = (int)i+(int)K$43;
;** 277 ----------------------- U$41[1] = (int)i+(int)K$49;
;** 278 ----------------------- i += 2u;
;** 278 ----------------------- if ( --L$2 ) goto g5;
;** ----------------------- return;
ADD .S1 1,A6,A6 ; |273| (E) <1,5> ^
|| STW .D1T1 A5,*A3++ ; |271| (E) <1,5>
|| STW .D2T2 B6,*B4++ ; |269| (E) <1,5>
ADD .S1 1,A6,A5 ; |273| (E) <2,5> ^
|| ADD .L1 A0,A6,A6 ; |271| (E) <2,4> ^
|| STW .D1T1 A5,*A4++ ; |272| (E) <1,6>
|| STW .D2T2 B6,*B5++ ; |270| (E) <1,6>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -