📄 dspjpeg.asm
字号:
NOP 4
MPYLH .M2X B5,A0,B6 ; |514|
|| MPYLH .M1X A0,B5,A3 ; |514|
MPYU .M1X A0,B5,A0 ; |514|
ADD .S2X A3,B6,B5 ; |514|
SHL .S2 B5,16,B5 ; |514|
ADD .S1X A0,B5,A0 ; |514|
SHR .S1 A0,15,A0 ; |514|
STH .D1T1 A0,*A4 ; |514|
.line 19
LDW .D2T1 *+B4(4),A0 ; |515|
|| LDH .D1T2 *+A4(2),B5 ; |515|
NOP 4
MPYLH .M2X B5,A0,B6 ; |515|
|| MPYLH .M1X A0,B5,A3 ; |515|
MPYU .M1X A0,B5,A0 ; |515|
ADD .S2X A3,B6,B5 ; |515|
SHL .S1X B5,16,A3 ; |515|
ADD .D1 A0,A3,A0 ; |515|
SHR .S1 A0,15,A0 ; |515|
STH .D1T1 A0,*+A4(2) ; |515|
.line 20
LDH .D1T2 *+A4(4),B5 ; |516|
LDW .D2T2 *+B4(8),B6 ; |516|
NOP 4
MPYLH .M2 B6,B5,B8 ; |516|
MPYLH .M2 B5,B6,B7 ; |516|
MPYU .M2 B6,B5,B5 ; |516|
ADD .D2 B8,B7,B6 ; |516|
SHL .S2 B6,16,B6 ; |516|
ADD .D2 B5,B6,B5 ; |516|
SHR .S2 B5,15,B5 ; |516|
STH .D1T2 B5,*+A4(4) ; |516|
.line 21
LDH .D1T2 *+A4(6),B6 ; |517|
LDW .D2T2 *+B4(12),B5 ; |517|
NOP 4
MPYLH .M2 B5,B6,B8 ; |517|
MPYLH .M2 B6,B5,B7 ; |517|
MPYU .M2 B5,B6,B6 ; |517|
ADD .D2 B8,B7,B5 ; |517|
SHL .S1X B5,16,A0 ; |517|
ADD .S1X B6,A0,A0 ; |517|
SHR .S1 A0,15,A0 ; |517|
STH .D1T1 A0,*+A4(6) ; |517|
.line 22
LDW .D2T2 *+B4(16),B5 ; |518|
|| LDH .D1T1 *+A4(8),A0 ; |518|
NOP 4
MPYLH .M2X A0,B5,B6 ; |518|
|| MPYLH .M1X B5,A0,A3 ; |518|
MPYU .M1X B5,A0,A0 ; |518|
ADD .S2X A3,B6,B5 ; |518|
SHL .S2 B5,16,B5 ; |518|
ADD .S2X A0,B5,B5 ; |518|
SHR .S2 B5,15,B5 ; |518|
STH .D1T2 B5,*+A4(8) ; |518|
.line 23
LDW .D2T2 *+B4(20),B5 ; |519|
|| LDH .D1T1 *+A4(10),A0 ; |519|
NOP 4
MPYLH .M2X A0,B5,B6 ; |519|
|| MPYLH .M1X B5,A0,A3 ; |519|
NOP 1
MPYU .M1X B5,A0,A3 ; |519|
|| ADD .S2X A3,B6,B5 ; |519|
SHL .S1X B5,16,A0 ; |519|
ADD .D1 A3,A0,A0 ; |519|
SHR .S1 A0,15,A0 ; |519|
STH .D1T1 A0,*+A4(10) ; |519|
.line 24
LDW .D2T2 *+B4(24),B5 ; |520|
|| LDH .D1T1 *+A4(12),A0 ; |520|
NOP 4
MPYLH .M2X B5,A0,B6 ; |520|
MPYLH .M2X A0,B5,B7 ; |520|
NOP 1
MPYU .M2X B5,A0,B6 ; |520|
|| ADD .D2 B6,B7,B5 ; |520|
SHL .S2 B5,16,B5 ; |520|
ADD .D2 B6,B5,B5 ; |520|
SHR .S2 B5,15,B5 ; |520|
STH .D1T2 B5,*+A4(12) ; |520|
.line 25
LDH .D1T1 *+A4(14),A0 ; |521|
|| LDW .D2T2 *+B4(28),B4 ; |521|
NOP 4
MPYLH .M2X B4,A0,B5 ; |521|
|| MPYLH .M1X A0,B4,A5 ; |521|
MPYU .M1X B4,A0,A3 ; |521|
ADD .S1X B5,A5,A0 ; |521|
SHL .S1 A0,16,A0 ; |521|
ADD .D1 A3,A0,A0 ; |521|
SHR .S1 A0,15,A0 ; |521|
STH .D1T1 A0,*+A4(14) ; |521|
.line 36
RET .S2 B3 ; |532|
NOP 5
; BRANCH OCCURS ; |532|
.endfunc 532,000000000h,0
.sect ".text"
.global _RLEComp
.sym _RLEComp,_RLEComp, 32, 2, 0
.func 417
;******************************************************************************
;* FUNCTION NAME: _RLEComp *
;* *
;* Regs Modified : A0,A1,A3,A4,A5,A7,A8,B0,B1,B4,B5,B6,B7,B8,B9 *
;* Regs Used : A0,A1,A3,A4,A5,A6,A7,A8,B0,B1,B3,B4,B5,B6,B7,B8,B9, *
;* DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 0 Save = 0 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_RLEComp:
;** --------------------------------------------------------------------------*
.line 2
.sym _lpbuf,4, 19, 17, 32
.sym _lpOutBuf,20, 24, 17, 32, _tagACSYM
.sym _resultLen,6, 28, 17, 32
.sym _EndFlag,22, 4, 17, 32
.sym _j,21, 4, 4, 32
.sym _zeroNum,23, 12, 4, 8
.sym _lpbuf,4, 19, 4, 32
.sym _lpOutBuf,20, 24, 4, 32, _tagACSYM
.sym _resultLen,6, 28, 4, 32
.sym _EndFlag,22, 4, 4, 32
.line 22
CMPGT .L2 B6,0,B1 ; |438|
[!B1] B .S1 L10 ; |438|
NOP 5
; BRANCH OCCURS ; |438|
;** --------------------------------------------------------------------------*
.line 24
.line 3
ZERO .D2 B7 ; |419|
.line 7
MVC .S2 CSR,B9
ZERO .D2 B5 ; |423|
|| AND .S2 -2,B9,B8
MV .D2 B6,B0
|| MV .S1X B7,A3
|| MV .L2 B4,B6
|| MVC .S2 B8,CSR ; interrupts off
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 438
;* Loop opening brace source line : 439
;* Loop closing brace source line : 454
;* Known Minimum Trip Count : 1
;* Known Max Trip Count Factor : 1
;* Loop Carried Dependency Bound(^) : 22
;* Unpartitioned Resource Bound : 5
;* Partitioned Resource Bound(*) : 5
;* Resource Partition:
;* A-side B-side
;* .L units 2 0
;* .S units 1 1
;* .D units 4 5*
;* .M units 0 0
;* .X cross paths 0 1
;* .T address paths 5* 3
;* Long read paths 2 2
;* Long write paths 0 0
;* Logical ops (.LS) 1 1 (.L or .S unit)
;* Addition ops (.LSD) 2 4 (.L or .S or .D unit)
;* Bound(.L .S .LS) 2 1
;* Bound(.L .S .D .LS .LSD) 4 4
;*
;* Searching for software pipeline schedule at ...
;* ii = 22 Schedule found with 1 iterations in parallel
;* Done
;*
;* Collapsed epilog stages : 0
;* Collapsed prolog stages : 0
;*
;* Minimum safe trip count : 1
;*----------------------------------------------------------------------------*
L7: ; PIPED LOOP PROLOG
;** --------------------------------------------------------------------------*
L8: ; PIPED LOOP KERNEL
CMPLTU .L1 A3,15,A8 ; <0,0>
|| LDH .D1T1 *++A4,A0 ; <0,0> ^
NOP 2
LDW .D2T1 *+DP(_pVLITAB),A7 ; |448| <0,3>
NOP 1
CMPEQ .L1 A0,0,A7 ; <0,5> ^
ADDAW .D2 B6,B5,B8 ; |446| <0,6>
|| AND .S1 A8,A7,A1 ; <0,6> ^
[!A1] STB .D2T2 B7,*B8 ; |446| <0,7> ^
[!A1] LDBU .D1T1 *+A7[A0],A5 ; |448| <0,8> ^
NOP 4
[!A1] STB .D2T1 A5,*+B8(1) ; |448| <0,13> ^
[!A1] STH .D2T1 A0,*+B8(2) ; |449| <0,14> ^
[ B0] SUB .D2 B0,1,B0 ; |454| <0,15>
|| [!A1] LDBU .D1T2 *A6,B4 ; |451| <0,15> ^
[ B0] B .S2 L8 ; |454| <0,16>
NOP 1
[!A1] ZERO .D1 A3 ; |442| <0,18> Define a twin register
ADD .D1 1,A3,A0 ; |442| <0,19>
[ A1] EXTU .S1 A0,24,24,A3 ; |442| <0,20>
|| ADD .D2 1,B4,B8 ; |451| <0,20> ^
[!A1] ADD .D2 1,B5,B5 ; |452| <0,21>
|| [!A1] ZERO .L2 B7 ; |442| <0,21>
|| [ A1] MV .S2X A3,B7 ; |442| <0,21> Define a twin register
|| [!A1] STB .D1T2 B8,*A6 ; |451| <0,21> ^
;** --------------------------------------------------------------------------*
L9: ; PIPED LOOP EPILOG
;** --------------------------------------------------------------------------*
MVC .S2 B9,CSR ; interrupts on
;** --------------------------------------------------------------------------*
L10:
.line 39
RET .S2 B3 ; |455|
NOP 5
; BRANCH OCCURS ; |455|
.endfunc 455,000000000h,0
.sect ".text"
.global _BuildSym2
.sym _BuildSym2,_BuildSym2, 40, 2, 0, _tagSYM2
.func 457
;******************************************************************************
;* FUNCTION NAME: _BuildSym2 *
;* *
;* Regs Modified : A0,A1,B0,B4,B5,SP *
;* Regs Used : A0,A1,A3,A4,B0,B3,B4,B5,DP,SP *
;* Local Frame Size : 0 Args + 4 Auto + 0 Save = 4 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_BuildSym2:
;** --------------------------------------------------------------------------*
.line 2
.sym _value,4, 3, 17, 16
.sym _value,4, 3, 4, 16
.sym _Symbol,4, 8, 1, 32, _tagSYM2
SUB .D2 SP,8,SP ; |458|
|| MV .S2X A3,B0 ; |458|
.line 5
LDW .D2T1 *+DP(_pVLITAB),A0 ; |461|
NOP 4
LDBU .D1T1 *+A0[A4],A0 ; |461|
NOP 4
STB .D2T1 A0,*+SP(6) ; |461|
.line 6
ZERO .D2 B4 ; |462|
STH .D2T2 B4,*+SP(4) ; |462|
.line 7
CMPLT .L1 A4,0,A1 ; |463|
.line 13
[ A1] LDBU .D2T2 *+SP(6),B5 ; |469|
[ A1] MVK .S2 (_mask-$bss),B4 ; |469|
[ A1] ADD .D2 DP,B4,B4 ; |469|
NOP 2
[ A1] LDHU .D2T2 *+B4[B5],B4 ; |469|
NOP 4
[ A1] ADD .S1X A4,B4,A0 ; |469|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -