📄 func.asm
字号:
MVC .S2 B8,CSR ; interrupts on
STW .D2T2 B7,*B5++ ; |55| (E) <5,11>
.line 36
RET .S2 B3 ; |67|
NOP 5
; BRANCH OCCURS ; |67|
.endfunc 67,000000000h,0
.sect ".text"
.global _main
.file "D:\DM642Training\6thday\src\intrisincs\main.c"
.sym _main,_main, 32, 2, 0
.func 15
;******************************************************************************
;* FUNCTION NAME: _main *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,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,B0,B1,B2,B3,B4,*
;* B5,B6,B7,B8,B9,B10,B11,B12,B13,DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 28 Save = 28 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_main:
;** --------------------------------------------------------------------------*
.line 2
.sym _i,0, 4, 4, 32
STW .D2T2 B13,*SP--(32) ; |16|
STW .D2T2 B11,*+SP(28) ; |16|
STW .D2T2 B10,*+SP(24) ; |16|
STW .D2T2 B12,*+SP(20) ; |16|
STW .D2T2 B3,*+SP(16) ; |16|
STW .D2T1 A11,*+SP(12) ; |16|
STW .D2T1 A10,*+SP(8) ; |16|
.line 6
MVK .S2 (_array1-8-$bss),B4
|| ZERO .D1 A0 ; |20|
|| MVK .S1 (_array2-8-$bss),A4
MVC .S2 CSR,B13
|| ADD .S1X DP,A4,A10
|| INTDP .L1 A0,A5:A4 ; |22| (P) <0,0> ^
ADD .D1 1,A0,A9 ; |22| (P) <0,1> ^
|| ADD .D2 DP,B4,B10
|| AND .S2 -2,B13,B4
ZERO .D2 B3 ; |22| (P) <0,4> ^
|| MVC .S2 B4,CSR ; interrupts off
|| INTDP .L2X A9,B5:B4 ; |22| (P) <0,2> ^
ZERO .D2 B1 ; |23| (P) <0,3> ^
|| MVKH .S2 0x3ff80000,B3 ; |22| (P) <0,5> ^
ZERO .D2 B2 ; |22|
|| ZERO .L2 B0 ; |23|
|| MVKH .S2 0x3ff80000,B1 ; |23| (P) <0,4> ^
ZERO .D1 A9 ; |23| (P) <0,4> ^
|| SUBDP .L1X B1:B0,A5:A4,A7:A6 ; |23| (P) <0,5> ^
|| ADDDP .L2X B3:B2,A5:A4,B7:B6 ; |22| (P) <0,6> ^
ZERO .D1 A8 ; |23|
|| MVKH .S1 0x3ff80000,A9 ; |23| (P) <0,7> ^
SUBDP .L2X A9:A8,B5:B4,B9:B8 ; |23| (P) <0,8> ^
MVK .S1 0x80,A3 ; |20|
|| ADD .D1 2,A0,A0 ; |24| (P) <0,9> ^
SUB .D1 A3,1,A1
|| INTDP .L1 A0,A5:A4 ; |22| (P) <1,0> ^
ZERO .D1 A3 ; |22| (P) <0,5> ^
|| ADD .S1 1,A0,A9 ; |22| (P) <1,1> ^
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 20
;* Loop opening brace source line : 21
;* Loop closing brace source line : 24
;* Loop Unroll Multiple : 2x
;* Known Minimum Trip Count : 128
;* Known Maximum Trip Count : 128
;* Known Max Trip Count Factor : 128
;* Loop Carried Dependency Bound(^) : 1
;* Unpartitioned Resource Bound : 7
;* Partitioned Resource Bound(*) : 8
;* Resource Partition:
;* A-side B-side
;* .L units 8* 8*
;* .S units 2 3
;* .D units 2 2
;* .M units 0 0
;* .X cross paths 4 5
;* .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) 5 2 (.L or .S or .D unit)
;* Bound(.L .S .LS) 5 6
;* Bound(.L .S .D .LS .LSD) 6 5
;*
;* Searching for software pipeline schedule at ...
;* ii = 8 Did not find schedule
;* ii = 9 Did not find schedule
;* ii = 10 Register is live too long
;* ii = 10 Register is live too long
;* ii = 10 Schedule found with 3 iterations in parallel
;* Done
;*
;* Epilog not entirely removed
;* Collapsed epilog stages : 1
;*
;* Prolog not removed
;* Collapsed prolog stages : 0
;*
;* Minimum required memory pad : 0 bytes
;*
;* Minimum safe trip count : 2 (after unrolling)
;*----------------------------------------------------------------------------*
L6: ; PIPED LOOP PROLOG
ZERO .D1 A2 ; |22|
|| MVKH .S1 0x3ff80000,A3 ; |22| (P) <0,6> ^
|| INTDP .L2X A9,B5:B4 ; |22| (P) <1,2> ^
ZERO .D2 B1 ; |23| (P) <1,3> ^
|| ADDDP .L1X A3:A2,B5:B4,A5:A4 ; |22| (P) <0,13> ^
ZERO .D1 A9 ; |23| (P) <1,4> ^
|| ZERO .D2 B3 ; |22| (P) <1,4> ^
|| MVKH .S2 0x3ff80000,B1 ; |23| (P) <1,4> ^
|| DPSP .L2 B7:B6,B11 ; |22| (P) <0,14> ^
DPSP .L2 B9:B8,B12 ; |23| (P) <0,15> ^
|| ZERO .D1 A3 ; |22| (P) <1,5> ^
|| SUBDP .L1X B1:B0,A5:A4,A7:A6 ; |23| (P) <1,5> ^
|| MVKH .S2 0x3ff80000,B3 ; |22| (P) <1,5> ^
MVKH .S1 0x3ff80000,A3 ; |22| (P) <1,6> ^
|| ADDDP .L2X B3:B2,A5:A4,B7:B6 ; |22| (P) <1,6> ^
;** --------------------------------------------------------------------------*
L7: ; PIPED LOOP KERNEL
MVKH .S1 0x3ff80000,A9 ; |23| <1,7> ^
SUBDP .L2X A9:A8,B5:B4,B9:B8 ; |23| <1,8> ^
DPSP .L1 A7:A6,A11 ; |23| <0,19> ^
|| ADD .D1 2,A0,A0 ; |24| <1,9> ^
[ A1] SUB .D1 A1,1,A1 ; |24| <0,20> ^
|| INTDP .L1 A0,A5:A4 ; |22| <2,0> ^
[ A1] B .S2 L7 ; |24| <0,21>
|| ADD .D1 1,A0,A9 ; |22| <2,1> ^
DPSP .L1 A5:A4,A11 ; |22| <0,22> ^
|| INTDP .L2X A9,B5:B4 ; |22| <2,2> ^
ADDDP .L1X A3:A2,B5:B4,A5:A4 ; |22| <1,13> ^
|| ZERO .D2 B1 ; |23| <2,3> ^
DPSP .L2 B7:B6,B11 ; |22| <1,14> ^
|| ZERO .D1 A9 ; |23| <2,4> ^
|| ZERO .D2 B3 ; |22| <2,4> ^
|| MVKH .S2 0x3ff80000,B1 ; |23| <2,4> ^
STW .D2T2 B11,*++B10(8) ; |22| <0,25> ^
|| STW .D1T1 A11,*++A10(8) ; |23| <0,25> ^
|| DPSP .L2 B9:B8,B12 ; |23| <1,15> ^
|| ZERO .S1 A3 ; |22| <2,5> ^
|| MVKH .S2 0x3ff80000,B3 ; |22| <2,5> ^
|| SUBDP .L1X B1:B0,A5:A4,A7:A6 ; |23| <2,5> ^
STW .D2T1 A11,*+B10(4) ; |22| <0,26> ^
|| STW .D1T2 B12,*+A10(4) ; |23| <0,26> ^
|| MVKH .S1 0x3ff80000,A3 ; |22| <2,6> ^
|| ADDDP .L2X B3:B2,A5:A4,B7:B6 ; |22| <2,6> ^
;** --------------------------------------------------------------------------*
L8: ; PIPED LOOP EPILOG
MVK .S1 (_array2-$bss),A3
MVK .S1 (_array1-$bss),A0
DPSP .L1 A7:A6,A11 ; |23| (E) <2,19> ^
NOP 2
DPSP .L1 A5:A4,A11 ; |22| (E) <2,22> ^
NOP 2
MVC .S2 B13,CSR ; interrupts on
|| STW .D1T1 A11,*++A10(8) ; |23| (E) <2,25> ^
|| STW .D2T2 B11,*++B10(8) ; |22| (E) <2,25> ^
ADD .S1X DP,A3,A10
|| ADD .S2X DP,A0,B10
|| STW .D2T1 A11,*+B10(4) ; |22| (E) <2,26> ^
|| STW .D1T2 B12,*+A10(4) ; |23| (E) <2,26> ^
.line 12
MV .D1 A10,A6 ; |26|
|| CALL .S2 _func1 ; |26|
MVK .S2 (_output-$bss),B4 ; |26|
MV .D2 B10,B4 ; |26|
|| MVKL .S2 RL1,B3 ; |26|
|| ADD .L2 DP,B4,B11 ; |26|
MV .S1X B11,A4 ; |26|
|| MVKH .S2 RL1,B3 ; |26|
MVK .S2 0x100,B6 ; |26|
NOP 1
RL1: ; CALL OCCURS ; |26|
NOP 1
MV .S1X B11,A4 ; |26|
.line 13
MV .D1 A10,A6 ; |27|
|| MV .D2 B10,B4 ; |27|
|| CALL .S2 _func2 ; |27|
MVKL .S2 RL2,B3 ; |27|
MVKH .S2 RL2,B3 ; |27|
MVK .S2 0x100,B6 ; |27|
NOP 2
RL2: ; CALL OCCURS ; |27|
.line 22
NOP 1
LDW .D2T2 *+SP(16),B3 ; |36|
LDW .D2T2 *+SP(20),B12 ; |36|
LDDW .D2T2 *+SP(24),B11:B10 ; |36|
LDDW .D2T1 *+SP(8),A11:A10 ; |36|
LDW .D2T2 *++SP(32),B13 ; |36|
RET .S2 B3 ; |36|
NOP 5
; BRANCH OCCURS ; |36|
.endfunc 36,03c080c00h,32
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;******************************************************************************
.global __divf
;******************************************************************************
;* TYPE INFORMATION *
;******************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -