📄 useful_functions.asm
字号:
;* ii = 29 Schedule found with 1 iterations in parallel
;* Done
;*
;* Collapsed epilog stages : 0
;* Collapsed prolog stages : 0
;*
;* Minimum safe trip count : 1
;*----------------------------------------------------------------------------*
L5: ; PIPED LOOP PROLOG
;** --------------------------------------------------------------------------*
L6: ; PIPED LOOP KERNEL
LDW .D1T1 *++A0(8),A6 ; |32| <0,0> ^
|| LDW .D2T2 *++B4(8),B7 ; |33| <0,0> ^
LDW .D1T1 *+A0(4),A3 ; |34| <0,1> ^
|| LDW .D2T2 *+B4(4),B6 ; |34| <0,1> ^
NOP 3
MPYSP .M1X B7,A6,A3 ; |34| <0,5>
MPYSP .M1X B6,A3,A4 ; |34| <0,6> ^
NOP 3
ADDSP .L1 A4,A3,A3 ; |34| <0,10> ^
NOP 3
STW .D1T1 A3,*++A5(8) ; |34| <0,14> ^
LDW .D1T1 *+A0(4),A3 ; |35| <0,15> ^
|| LDW .D2T2 *+B4(4),B6 ; |35| <0,15> ^
NOP 4
MPYSP .M2X B7,A3,B6 ; |35| <0,20> ^
|| MPYSP .M1X A6,B6,A3 ; |35| <0,20> ^
NOP 1
[ B0] SUB .D2 B0,1,B0 ; |36| <0,22>
[ B0] B .S2 L6 ; |36| <0,23>
SUBSP .L2X A3,B6,B6 ; |35| <0,24> ^
NOP 3
STW .D2T2 B6,*++B5(8) ; |35| <0,28> ^
;** --------------------------------------------------------------------------*
L7: ; PIPED LOOP EPILOG
;** --------------------------------------------------------------------------*
MVC .S2 B8,CSR ; interrupts on
;** --------------------------------------------------------------------------*
L8:
.line 13
RET .S2 B3 ; |38|
NOP 5
; BRANCH OCCURS ; |38|
.endfunc 38,000000000h,0
.sect ".text"
.global _div_element
.sym _div_element,_div_element, 32, 2, 0
.func 6
;******************************************************************************
;* FUNCTION NAME: _div_element *
;* *
;* Regs Modified : A0,A3,A4,A5,B0,B4,B5,B6,B7,B8 *
;* Regs Used : A0,A3,A4,A5,A6,B0,B3,B4,B5,B6,B7,B8,DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 0 Save = 0 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_div_element:
;** --------------------------------------------------------------------------*
.line 2
.sym _x,4, 22, 17, 32
.sym _y,20, 22, 17, 32
.sym _z,6, 22, 17, 32
.sym _count,22, 4, 17, 32
.sym _count,22, 4, 4, 32
.sym _x,4, 22, 4, 32
.sym _y,20, 22, 4, 32
.sym _z,21, 22, 4, 32
MV .S2X A6,B5 ; |7|
.line 5
CMPLT .L2 B6,2,B0 ; |10|
[ B0] B .S1 L12 ; |10|
[!B0] SUB .D2 B5,8,B7
NOP 4
; BRANCH OCCURS ; |10|
;** --------------------------------------------------------------------------*
.line 7
MVC .S2 CSR,B8
SHR .S2 B6,1,B0 ; |12|
|| AND .L2 -2,B8,B6
MV .D1 A4,A5
|| MV .D2 B4,B5
|| ADD .L2 4,B7,B4
|| MV .S1X B7,A4
|| MVC .S2 B6,CSR ; interrupts off
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 10
;* Loop opening brace source line : 11
;* Loop closing brace source line : 22
;* Known Minimum Trip Count : 1
;* Known Max Trip Count Factor : 1
;* Loop Carried Dependency Bound(^) : 40
;* Unpartitioned Resource Bound : 5
;* Partitioned Resource Bound(*) : 6
;* Resource Partition:
;* A-side B-side
;* .L units 2 2
;* .S units 1 2
;* .D units 5 5
;* .M units 5 5
;* .X cross paths 6* 2
;* .T address paths 5 5
;* Long read paths 1 1
;* Long write paths 0 0
;* Logical ops (.LS) 1 1 (.L or .S unit)
;* Addition ops (.LSD) 0 1 (.L or .S or .D unit)
;* Bound(.L .S .LS) 2 3
;* Bound(.L .S .D .LS .LSD) 3 4
;*
;* Searching for software pipeline schedule at ...
;* ii = 40 Did not find schedule
;* ii = 41 Did not find schedule
;* ii = 42 Schedule found with 1 iterations in parallel
;* Done
;*
;* Collapsed epilog stages : 0
;* Collapsed prolog stages : 0
;*
;* Minimum safe trip count : 1
;*----------------------------------------------------------------------------*
L9: ; PIPED LOOP PROLOG
;** --------------------------------------------------------------------------*
L10: ; PIPED LOOP KERNEL
[ B0] SUB .S2 B0,1,B0 ; |22| <0,0>
|| LDW .D1T1 *A5++(8),A0 ; |12| <0,0> ^
|| LDW .D2T2 *B5,B6 ; |12| <0,0> ^
LDW .D1T1 *-A5(4),A0 ; |12| <0,1> ^
|| LDW .D2T2 *+B5(4),B6 ; |12| <0,1> ^
NOP 3
MPYSP .M1X B6,A0,A0 ; |12| <0,5>
|| MPYSP .M2 B6,B6,B7 ; |12| <0,5> ^
MPYSP .M2 B6,B6,B6 ; |12| <0,6> ^
MPYSP .M2X B6,A0,B6 ; |12| <0,7> ^
NOP 2
ADDSP .L2 B6,B7,B6 ; |12| <0,10> ^
ADDSP .L1X B6,A0,A0 ; |12| <0,11> ^
NOP 2
RCPSP .S2 B6,B6 ; |12| <0,14> ^
MPYSP .M1X B6,A0,A0 ; |12| <0,15> ^
NOP 3
STW .D1T1 A0,*++A4(8) ; |12| <0,19> ^
LDW .D1T1 *-A5(8),A0 ; |13| <0,20>
|| LDW .D2T2 *+B5(4),B6 ; |13| <0,20> ^
LDW .D1T1 *-A5(4),A0 ; |13| <0,21>
|| LDW .D2T2 *B5++(8),B6 ; |13| <0,21> ^
NOP 3
MPYSP .M1X B6,A0,A3 ; |13| <0,25>
|| MPYSP .M2 B6,B6,B6 ; |13| <0,25> ^
MPYSP .M2 B6,B6,B7 ; |13| <0,26> ^
NOP 1
MPYSP .M1X B6,A0,A0 ; |13| <0,28>
NOP 1
ADDSP .L2 B6,B7,B6 ; |13| <0,30> ^
NOP 1
SUBSP .L1 A0,A3,A3 ; |13| <0,32>
NOP 1
RCPSP .S2 B6,B6 ; |13| <0,34> ^
MV .S1X B6,A0 ; |13| <0,35> ^ Define a twin register
[ B0] B .S1 L10 ; |22| <0,36>
|| MPYSP .M1 A0,A3,A0 ; |13| <0,36> ^
NOP 3
MV .S2X A0,B6 ; |13| <0,40> ^ Define a twin register
STW .D2T2 B6,*++B4(8) ; |13| <0,41> ^
;** --------------------------------------------------------------------------*
L11: ; PIPED LOOP EPILOG
;** --------------------------------------------------------------------------*
MVC .S2 B8,CSR ; interrupts on
;** --------------------------------------------------------------------------*
L12:
.line 18
RET .S2 B3 ; |23|
NOP 5
; BRANCH OCCURS ; |23|
.endfunc 23,000000000h,0
;******************************************************************************
;* TYPE INFORMATION *
;******************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -