📄 notch2.asm
字号:
|| ZERO .L2 B6 ; |21|
|| SUB .L1X B4,8,A5
|| MVK .S1 (_h2700-8-$bss),A0
|| MVC .S2 CSR,B9
ZERO .D1 A0 ; |21|
|| MVK .S1 0x2,A1 ; init prolog collapse predicate
|| ADD .S2X DP,A0,B5
|| AND .L2 -2,B9,B7
MVC .S2 B7,CSR ; interrupts off
MVK .S2 0x16,B7 ; |21|
|| B .S1 L5 ; |22| (P) <0,3>
SUB .S2 B7,5,B0
|| LDW .D2T2 *++B5(8),B8 ; |22| (P) <0,0>
|| LDW .D1T1 *++A5(8),A4 ; |22| (P) <0,0>
LDW .D2T2 *+B5(4),B8 ; |22| (P) <0,1>
|| B .S1 L5 ; |22| (P) <1,3>
|| LDW .D1T1 *+A5(4),A4 ; |22| (P) <0,1>
LDW .D2T2 *++B5(8),B8 ; |22| (P) <1,0>
|| LDW .D1T1 *++A5(8),A4 ; |22| (P) <1,0>
;** --------------------------------------------------------------------------*
L5: ; PIPED LOOP KERNEL
[!A1] ADD .S2 B7,B6,B6 ; |22| <0,7>
|| [!A1] ADD .L1 A6,A3,A3 ; |22| <0,7>
|| MPYH .M2X B8,A4,B7 ; |22| <1,5>
|| MPY .M1X B8,A4,A6 ; |22| <1,5>
|| [ B0] B .S1 L5 ; |22| <2,3>
|| LDW .D1T1 *+A5(4),A4 ; |22| <3,1>
|| LDW .D2T2 *+B5(4),B8 ; |22| <3,1>
[ A1] SUB .S1 A1,1,A1 ; <0,8>
|| [!A1] ADD .L2 B7,B4,B4 ; |22| <0,8>
|| [!A1] ADD .L1 A6,A0,A0 ; |22| <0,8>
|| MPYH .M2X B8,A4,B7 ; |22| <1,6>
|| MPY .M1X B8,A4,A6 ; |22| <1,6>
|| [ B0] SUB .S2 B0,1,B0 ; |22| <3,2>
|| LDW .D1T1 *++A5(8),A4 ; |22| <4,0>
|| LDW .D2T2 *++B5(8),B8 ; |22| <4,0>
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 24
;* Loop opening brace source line : 25
;* Loop closing brace source line : 28
;* Loop Unroll Multiple : 2x
;* Known Minimum Trip Count : 44
;* Known Maximum Trip Count : 44
;* Known Max Trip Count Factor : 44
;* Loop Carried Dependency Bound(^) : 0
;* Unpartitioned Resource Bound : 4
;* Partitioned Resource Bound(*) : 4
;* Resource Partition:
;* A-side B-side
;* .L units 0 0
;* .S units 1 0
;* .D units 4* 4*
;* .M units 0 0
;* .X cross paths 0 0
;* .T address paths 4* 4*
;* Long read paths 2 2
;* Long write paths 0 0
;* Logical ops (.LS) 0 0 (.L or .S unit)
;* Addition ops (.LSD) 0 1 (.L or .S or .D unit)
;* Bound(.L .S .LS) 1 0
;* Bound(.L .S .D .LS .LSD) 2 2
;*
;* Searching for software pipeline schedule at ...
;* ii = 4 Schedule found with 4 iterations in parallel
;* Done
;*
;* Epilog not removed
;* Collapsed epilog stages : 0
;*
;* Prolog not entirely removed
;* Collapsed prolog stages : 1
;*
;* Minimum required memory pad : 0 bytes
;*
;* For further improvement on this loop, try option -mh8
;*
;* Minimum safe trip count : 3 (after unrolling)
;*----------------------------------------------------------------------------*
L6: ; PIPED LOOP EPILOG AND PROLOG
MVK .S2 (_dly1+172-$bss),B5
|| MVK .S1 (_dly2+172-$bss),A3
|| ADD .L2 B7,B6,B6 ; |22| (E) <1,7>
|| ADD .L1 A6,A3,A5 ; |22| (E) <1,7>
|| MPY .M1X B8,A4,A6 ; |22| (E) <2,5>
|| LDW .D1T1 *+A5(4),A4 ; |22| (E) <4,1>
|| LDW .D2T2 *+B5(4),B8 ; |22| (E) <4,1>
|| MPYH .M2X B8,A4,B0 ; |22| (E) <2,5>
ADD .S2 DP,B5,B4
|| LDH .D2T2 *+DP(_dly2+176),B5
|| ADD .L2 B7,B4,B7 ; |22| (E) <1,8>
|| ADD .D1 A6,A0,A0 ; |22| (E) <1,8>
|| MPYH .M2X B8,A4,B6 ; |22| (E) <2,6>
|| MPY .M1X B8,A4,A5 ; |22| (E) <2,6>
ADD .D2 B0,B6,B0 ; |22| (E) <2,7>
|| ADD .D1 A6,A5,A6 ; |22| (E) <2,7>
|| MPYH .M2X B8,A4,B6 ; |22| (E) <3,5>
|| MPY .M1X B8,A4,A5 ; |22| (E) <3,5>
ADD .D2 B6,B7,B7 ; |22| (E) <2,8>
|| ADD .D1 A5,A0,A0 ; |22| (E) <2,8>
|| MPY .M1X B8,A4,A5 ; |22| (E) <3,6>
|| MPYH .M2X B8,A4,B6 ; |22| (E) <3,6>
ADD .D2 B6,B0,B0 ; |22| (E) <3,7>
|| ADD .D1 A5,A6,A6 ; |22| (E) <3,7>
|| MPY .M1X B8,A4,A0 ; |22| (E) <4,5>
|| MPYH .M2X B8,A4,B7 ; |22| (E) <4,5>
ADD .D2 B6,B7,B6 ; |22| (E) <3,8>
|| ADD .D1 A5,A0,A4 ; |22| (E) <3,8>
|| MPYH .M2X B8,A4,B8 ; |22| (E) <4,6>
|| MPY .M1X B8,A4,A3 ; |22| (E) <4,6>
ADD .S1X DP,A3,A0
|| LDH .D2T2 *+DP(_h2700+176),B9
|| MVC .S2 B9,CSR ; interrupts on
|| ADD .D1 A0,A6,A5 ; |22| (E) <4,7>
|| ADD .L2 B7,B0,B7 ; |22| (E) <4,7>
ADD .D2 B8,B6,B6 ; |22| (E) <4,8>
|| ADD .D1 A3,A4,A3 ; |22| (E) <4,8>
NOP 3
MPY .M2 B9,B5,B5
NOP 1
ADD .S2X A5,B5,B5
ADD .D2 B7,B5,B5
ADD .S2X A3,B5,B5
ADD .D2 B6,B5,B5
STW .D2T2 B5,*+DP(_y2out)
.line 15
MVK .S1 0x1,A1 ; init prolog collapse predicate
|| LDH .D1T1 *+A0(2),A3 ; |27| (P) <0,0>
|| MVC .S2 CSR,B6
MVK .S2 0x2c,B7 ; |24|
|| AND .L2 -2,B6,B5
SUB .D2 B7,3,B0
|| MVC .S2 B5,CSR ; interrupts off
LDH .D2T2 *+B4(2),B5 ; |26| (P) <0,1>
NOP 1
B .S1 L7 ; |28| (P) <0,7>
LDH .D1T1 *-A0(2),A3 ; |27| (P) <1,0>
;** --------------------------------------------------------------------------*
L7: ; PIPED LOOP KERNEL
STH .D1T1 A3,*+A0(4) ; |27| <1,5>
|| LDH .D2T2 *-B4(2),B5 ; |26| <2,1>
[ B0] SUB .S2 B0,1,B0 ; |28| <1,6>
|| STH .D2T2 B5,*+B4(4) ; |26| <1,6>
|| LDH .D1T1 *A0--(4),A3 ; |27| <1,6>
[!A1] STH .D1T1 A3,*+A0(10) ; |27| <0,11>
|| [ B0] B .S1 L7 ; |28| <1,7>
|| LDH .D2T2 *B4--(4),B5 ; |26| <1,7>
[ A1] SUB .S1 A1,1,A1 ; <0,12>
|| [!A1] STH .D2T2 B5,*+B4(10) ; |26| <0,12>
|| LDH .D1T1 *-A0(2),A3 ; |27| <3,0>
;** --------------------------------------------------------------------------*
L8: ; PIPED LOOP EPILOG
LDH .D2T2 *-B4(2),B5 ; |26| (E) <3,1>
|| STH .D1T1 A3,*+A0(4) ; |27| (E) <2,5>
STH .D2T2 B5,*+B4(4) ; |26| (E) <2,6>
|| LDH .D1T1 *A0--(4),A3 ; |27| (E) <2,6>
LDH .D2T2 *B4--(4),B5 ; |26| (E) <2,7>
|| STH .D1T1 A3,*+A0(10) ; |27| (E) <1,11>
STH .D2T2 B5,*+B4(10) ; |26| (E) <1,12>
STH .D1T1 A3,*+A0(4) ; |27| (E) <3,5>
STH .D2T2 B5,*+B4(4) ; |26| (E) <3,6>
|| LDH .D1T1 *A0--(4),A3 ; |27| (E) <3,6>
LDH .D2T2 *B4--(4),B5 ; |26| (E) <3,7>
|| STH .D1T1 A3,*+A0(10) ; |27| (E) <2,11>
STH .D2T2 B5,*+B4(10) ; |26| (E) <2,12>
;** --------------------------------------------------------------------------*
NOP 2
MVC .S2 B6,CSR ; interrupts on
|| STH .D1T1 A3,*+A0(6) ; |27| (E) <3,11>
STH .D2T2 B5,*+B4(6) ; |26| (E) <3,12>
.line 21
LDH .D2T2 *+DP(_out_type),B4 ; |30|
NOP 4
CMPEQ .L2 B4,1,B0 ; |30|
[!B0] B .S2 L9 ; |30|
NOP 5
; BRANCH OCCURS ; |30|
;** --------------------------------------------------------------------------*
.line 22
CALL .S1 _output_sample ; |31|
LDH .D2T1 *+DP(_dly1),A4 ; |31|
MVKL .S2 RL2,B3 ; |31|
MVKH .S2 RL2,B3 ; |31|
NOP 2
RL2: ; CALL OCCURS ; |31|
LDH .D2T2 *+DP(_out_type),B4
NOP 4
;** --------------------------------------------------------------------------*
L9:
.line 23
CMPEQ .L2 B4,2,B0 ; |32|
[!B0] B .S1 L10 ; |32|
NOP 5
; BRANCH OCCURS ; |32|
;** --------------------------------------------------------------------------*
.line 24
CALL .S1 _output_sample ; |33|
|| LDW .D2T2 *+DP(_y2out),B4 ; |33|
MVKL .S2 RL3,B3 ; |33|
MVKH .S2 RL3,B3 ; |33|
NOP 2
SHR .S1X B4,15,A4 ; |33|
RL3: ; CALL OCCURS ; |33|
;** --------------------------------------------------------------------------*
L10:
.line 26
LDW .D2T2 *+SP(80),B8 ; |35|
LDW .D2T2 *+SP(76),B7 ; |35|
LDW .D2T2 *+SP(72),B6 ; |35|
LDW .D2T2 *+SP(68),B5 ; |35|
LDW .D2T2 *+SP(64),B4 ; |35|
LDW .D2T2 *+SP(60),B3 ; |35|
LDW .D2T2 *+SP(56),B2 ; |35|
LDW .D2T2 *+SP(52),B1 ; |35|
LDW .D2T2 *+SP(48),B0 ; |35|
LDW .D2T1 *+SP(44),A9 ; |35|
LDW .D2T1 *+SP(40),A8 ; |35|
LDW .D2T1 *+SP(36),A7 ; |35|
LDW .D2T1 *+SP(32),A6 ; |35|
LDW .D2T1 *+SP(28),A5 ; |35|
LDW .D2T1 *+SP(24),A4 ; |35|
LDW .D2T1 *+SP(20),A3 ; |35|
LDW .D2T1 *+SP(16),A2 ; |35|
LDW .D2T1 *+SP(12),A1 ; |35|
LDW .D2T1 *+SP(8),A0 ; |35|
RET .S2 IRP ; |35|
|| LDW .D2T2 *+SP(84),B9 ; |35|
LDW .D2T2 *++SP(88),B10 ; |35|
NOP 4
; BRANCH OCCURS ; |35|
.endfunc 35,007ff03ffh,88
;******************************************************************************
;* MARK THE END OF THE SCALAR INIT RECORD IN CINIT:C *
;******************************************************************************
CIR: .sect ".cinit:c"
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;******************************************************************************
.global _input_sample
.global _output_sample
.global _comm_intr
;******************************************************************************
;* TYPE INFORMATION *
;******************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -