?? matrix_mpys.asm
字號:
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",26,1
ZERO .L1 i ; |26|
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",27,1
ZERO .L2 rst ; |27|
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",28,1
B .S2 loop1 ; |42| (P) <0,7>
MV .L1 a_mtrx,a_mtrx'
|| MPY .M1 i,k,temp4' ; |31| (P) <0,0>
MV .L1X b_mtrx,b_mtrx'
|| ADD .L2 1,nn,B1
|| ADD .S1 0x1,i,i ; |40| (P) <0,1>
|| SUB .D1 temp1,i,temp5 ; |29| (P) <0,1> position src1
|| B .S2 loop1 ; |42| (P) <1,7>
MVK .L2 0x4,B2 ; init prolog collapse predicate
|| ADD .S2 1,nn,nn'
|| MV .L1X rst,rst'
|| SUB .D2 B1,1,B1 ; init epilog collapse predicate
|| SUB .S1 temp2,temp4',temp4 ; |32| (P) <0,2> position src2
|| MPY .M1 i,k,temp4' ; |31| (P) <1,0>
;** --------------------------------------------------------------------------*
loop1: ; PIPED LOOP KERNEL
DW$L$_matrix_mpys$5$B:
MPY .M1 src1,src2,dst ; |37| <1,9>
|| [ nn'] B .S2 loop1 ; |42| <2,7>
|| [ B1] LDH .D1T1 *+a_mtrx'[temp5],src1 ; |34| <4,3>
|| ADD .L1 0x1,i,i ; |40| <5,1>
|| SUB .S1 temp1,i,temp5 ; |29| <5,1> position src1
[ B2] SUB .L2 B2,1,B2 ; <0,12>
|| [ B1] SUB .S2 B1,1,B1 ; <0,12>
|| [!B2] ADD .S1 dst,rst',rst' ; |38| <0,12>
|| [ nn'] ADD .D2 0xffffffff,nn',nn' ; |41| <3,6> number of loop1
|| [ B1] LDH .D1T1 *+b_mtrx'[temp4],src2 ; |35| <4,4>
|| SUB .L1 temp2,temp4',temp4 ; |32| <5,2> position src2
|| MPY .M1 i,k,temp4' ; |31| <6,0>
DW$L$_matrix_mpys$5$E:
;** --------------------------------------------------------------------------*
L5: ; PIPED LOOP EPILOG AND PROLOG
; loop2:.trip 10
; loop1:.trip 30
MV .L2X b_mtrx',b_mtrx
MV .L2X rst',rst
NOP 2
MV .L1 a_mtrx',a_mtrx
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",44,1
CMPGT .L2 rst,max,x ; |44|
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",45,1
[ x] MV .L2 rst,max ; |45| maximum number of C array
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",46,1
[ x] MV .L2 mm,i_max
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",47,1
[ x] MV .L2 kk,j_max
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",48,1
STW .D1T2 rst,*+c_mtrx[temp3] ; |48| store result
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",49,1
ADD .L1 0xffffffff,temp3,temp3 ; |49|
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",50,1
ADD .L2 0xffffffff,kk,kk ; |50|
|| ADD .S2 0xffffffff,kk,kk$3 ; |50|
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",51,1
NOP 1
MV .L1X kk$3,kk$2
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",19,1
MPY .M2X mm,n,temp1' ; |19|
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",20,1
NOP 2
ADD .L1X 0xffffffff,temp1',temp1 ; |20| position end of A[m][n]
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",21,1
MPY .M1 n,k,temp2' ; |21|
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",22,1
NOP 1
SUB .L1 temp2',z,temp2 ; |22|
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",23,1
ADD .L1 0x1,z,z ; |23| position end of B[n][k]
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",25,1
MV .L2X n,nn ; |25| number of dotp in loop1
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",26,1
ZERO .L1 i ; |26|
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",27,1
ZERO .L2 rst ; |27|
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",28,1
ADD .L2 1,nn,nn'
|| MV .L1X b_mtrx,b_mtrx'
|| ADD .D2 1,nn,B1
|| MV .S1 a_mtrx,a_mtrx'
|| [ kk$2] B .S2 loop1 ; |51| branch to kernel
MVK .L2 0x4,B2 ; init prolog collapse predicate
|| MV .L1X rst,rst'
|| SUB .S2 B1,1,B1 ; init epilog collapse predicate
[ kk$2] B .S2 loop1 ; |42| (P) <0,7>
[ kk$2] MPY .M1 i,k,temp4' ; |31| (P) <0,0>
ADD .L1 0x1,i,i ; |40| (P) <0,1>
|| SUB .S1 temp1,i,temp5 ; |29| (P) <0,1> position src1
|| [ kk$2] B .S2 loop1 ; |42| (P) <1,7>
SUB .L1 temp2,temp4',temp4 ; |32| (P) <0,2> position src2
|| [ kk$2] MPY .M1 i,k,temp4' ; |31| (P) <1,0>
;** --------------------------------------------------------------------------*
DW$L$_matrix_mpys$7$B:
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",53,1
ADD .L2 0xffffffff,mm,mm ; |53|
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",54,1
NOP 1
MV .L1X mm,mm'
[ mm'] BNOP .S1 loop3,5 ; |54|
; BRANCHCC OCCURS {loop3} ; |54|
DW$L$_matrix_mpys$7$E:
;** --------------------------------------------------------------------------*
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",56,1
STW .D2T2 max,*resultmax++ ; |56| store the max
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",57,1
STW .D2T2 i_max,*resultmax++ ; |57|
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",58,1
STW .D2T2 j_max,*resultmax++ ; |58| store the position of the max
.dwpsn "D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa",60,1
.dwcfa 0x0e, 0
RETNOP .S2 B3,5 ; |60|
; BRANCH OCCURS {B3} ; |60|
DW$32 .dwtag DW_TAG_loop
.dwattr DW$32, DW_AT_name("D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.asm:L1:1:1134195402")
.dwattr DW$32, DW_AT_begin_file("D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa")
.dwattr DW$32, DW_AT_begin_line(0x0f)
.dwattr DW$32, DW_AT_end_line(0x36)
DW$33 .dwtag DW_TAG_loop_range
.dwattr DW$33, DW_AT_low_pc(DW$L$_matrix_mpys$2$B)
.dwattr DW$33, DW_AT_high_pc(DW$L$_matrix_mpys$2$E)
DW$34 .dwtag DW_TAG_loop_range
.dwattr DW$34, DW_AT_low_pc(DW$L$_matrix_mpys$3$B)
.dwattr DW$34, DW_AT_high_pc(DW$L$_matrix_mpys$3$E)
DW$35 .dwtag DW_TAG_loop_range
.dwattr DW$35, DW_AT_low_pc(DW$L$_matrix_mpys$7$B)
.dwattr DW$35, DW_AT_high_pc(DW$L$_matrix_mpys$7$E)
DW$36 .dwtag DW_TAG_loop
.dwattr DW$36, DW_AT_name("D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.asm:L4:2:1134195402")
.dwattr DW$36, DW_AT_begin_file("D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa")
.dwattr DW$36, DW_AT_begin_line(0x13)
.dwattr DW$36, DW_AT_end_line(0x33)
DW$37 .dwtag DW_TAG_loop
.dwattr DW$37, DW_AT_name("D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.asm:L4:2:1134195402:DT")
.dwattr DW$37, DW_AT_begin_file("D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa")
.dwattr DW$37, DW_AT_begin_line(0x13)
.dwattr DW$37, DW_AT_end_line(0x33)
DW$38 .dwtag DW_TAG_loop_range
.dwattr DW$38, DW_AT_low_pc(DW$L$_matrix_mpys$5$B)
.dwattr DW$38, DW_AT_high_pc(DW$L$_matrix_mpys$5$E)
.dwendtag DW$37
DW$39 .dwtag DW_TAG_loop_range
.dwattr DW$39, DW_AT_low_pc(DW$L$_matrix_mpys$5$B)
.dwattr DW$39, DW_AT_high_pc(DW$L$_matrix_mpys$5$E)
.dwendtag DW$36
.dwendtag DW$32
.dwattr DW$1, DW_AT_end_file("D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpys.sa")
.dwattr DW$1, DW_AT_end_line(0x3c)
.dwattr DW$1, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$1
.clearmap
; .endproc
;******************************************************************************
;* TYPE INFORMATION *
;******************************************************************************
DW$T$19 .dwtag DW_TAG_subroutine_type
.dwattr DW$T$19, DW_AT_language(DW_LANG_C)
DW$T$10 .dwtag DW_TAG_base_type, DW_AT_name("int")
.dwattr DW$T$10, DW_AT_encoding(DW_ATE_signed)
.dwattr DW$T$10, DW_AT_byte_size(0x04)
.dwattr DW$CU, DW_AT_language(DW_LANG_C)
;***************************************************************
;* DWARF CIE ENTRIES *
;***************************************************************
DW$CIE .dwcie 1, 126
.dwcfa 0x0c, 31, 0
.dwcfa 0x07, 0
.dwcfa 0x07, 1
.dwcfa 0x07, 2
.dwcfa 0x07, 3
.dwcfa 0x07, 4
.dwcfa 0x07, 5
.dwcfa 0x07, 6
.dwcfa 0x07, 7
.dwcfa 0x07, 8
.dwcfa 0x07, 9
.dwcfa 0x08, 10
.dwcfa 0x08, 11
.dwcfa 0x08, 12
.dwcfa 0x08, 13
.dwcfa 0x08, 14
.dwcfa 0x08, 15
.dwcfa 0x07, 16
.dwcfa 0x07, 17
.dwcfa 0x07, 18
.dwcfa 0x07, 19
.dwcfa 0x07, 20
.dwcfa 0x07, 21
.dwcfa 0x07, 22
.dwcfa 0x07, 23
.dwcfa 0x07, 24
.dwcfa 0x07, 25
.dwcfa 0x08, 26
.dwcfa 0x08, 27
.dwcfa 0x08, 28
.dwcfa 0x08, 29
.dwcfa 0x08, 30
.dwcfa 0x08, 31
.dwcfa 0x08, 32
.dwcfa 0x07, 33
.dwcfa 0x07, 34
.dwcfa 0x07, 35
.dwcfa 0x07, 36
.dwcfa 0x07, 37
.dwcfa 0x07, 38
.dwcfa 0x07, 39
.dwcfa 0x07, 40
.dwcfa 0x07, 41
.dwcfa 0x07, 42
.dwcfa 0x07, 43
.dwcfa 0x07, 44
.dwcfa 0x07, 45
.dwcfa 0x07, 46
.dwcfa 0x07, 47
.dwcfa 0x07, 48
.dwcfa 0x07, 49
.dwcfa 0x07, 50
.dwcfa 0x07, 51
.dwcfa 0x07, 52
.dwcfa 0x07, 53
.dwcfa 0x07, 54
.dwcfa 0x07, 55
.dwcfa 0x07, 56
.dwcfa 0x07, 57
.dwcfa 0x07, 58
.dwcfa 0x07, 59
.dwcfa 0x07, 60
.dwcfa 0x07, 61
.dwcfa 0x07, 62
.dwcfa 0x07, 63
.dwcfa 0x07, 64
.dwcfa 0x07, 65
.dwcfa 0x07, 66
.dwcfa 0x07, 67
.dwcfa 0x07, 68
.dwcfa 0x07, 69
.dwcfa 0x07, 70
.dwcfa 0x07, 71
.dwcfa 0x07, 72
.dwcfa 0x07, 73
.dwcfa 0x07, 74
.dwcfa 0x07, 75
.dwcfa 0x07, 76
.dwcfa 0x07, 77
.dwcfa 0x07, 78
.dwcfa 0x07, 79
.dwcfa 0x07, 80
.dwcfa 0x07, 81
.dwcfa 0x07, 82
.dwcfa 0x07, 83
.dwcfa 0x07, 84
.dwcfa 0x07, 85
.dwcfa 0x07, 86
.dwcfa 0x07, 87
.dwcfa 0x07, 88
.dwcfa 0x07, 89
.dwcfa 0x07, 90
.dwcfa 0x07, 91
.dwcfa 0x07, 92
.dwcfa 0x07, 93
.dwcfa 0x07, 94
.dwcfa 0x07, 95
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -