📄 jpeginit.asm
字号:
;** --------------------------------------------------------------------------*
L5:
.line 45
MVK .S1 0xa,A3 ; |150|
;** --------------------------------------------------------------------------*
L6:
.line 52
B .S2 B3 ; |157|
MV .D1 A3,A4 ; |150|
NOP 4
; BRANCH OCCURS ; |157|
.endfunc 157,000000000h,0
.sect ".text"
.global _BuildVLITable
.sym _BuildVLITable,_BuildVLITable, 32, 2, 0
.func 90
;******************************************************************************
;* FUNCTION NAME: _BuildVLITable *
;* *
;* Regs Modified : A0,A1,A3,A4,A5,A6,B0,B1,B2,B3,B4,B5,SP *
;* Regs Used : A0,A1,A3,A4,A5,A6,B0,B1,B2,B3,B4,B5,DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 4 Save = 4 byte *
;******************************************************************************
_BuildVLITable:
;** --------------------------------------------------------------------------*
.line 2
.sym _i,6, 3, 4, 16
.sym _i,6, 3, 4, 16
STW .D2T2 B3,*SP--(8) ; |91|
.line 5
LDW .D2T2 *+DP(_DC_MAX_QUANTED),B2 ; |94|
NOP 4
CMPGT .L2 B2,0,B0 ; |94|
[!B0] B .S1 L8 ; |94|
NOP 5
; BRANCH OCCURS ; |94|
;** --------------------------------------------------------------------------*
.line 7
.line 5
ZERO .D1 A6 ; |94|
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;* Disqualified loop: loop contains a call
;*----------------------------------------------------------------------------*
L7:
.line 7
B .S1 _ComputeVLI ; |96|
MVKL .S2 RL0,B3 ; |96|
MVKH .S2 RL0,B3 ; |96|
MV .D1 A6,A4 ; |96|
NOP 2
RL0: ; CALL OCCURS ; |96|
LDW .D2T1 *+DP(_pVLITAB),A0 ; |96|
NOP 4
STB .D1T1 A4,*+A0[A6] ; |96|
.line 8
SUB .D2 B2,1,B2 ; |97|
[ B2] B .S1 L7 ; |97|
ADD .D1 1,A6,A0 ; |97|
EXT .S1 A0,16,16,A6 ; |97|
NOP 3
; BRANCH OCCURS ; |97|
;** --------------------------------------------------------------------------*
L8:
.line 10
LDH .D2T1 *+DP(_DC_MIN_QUANTED),A6 ; |99|
NOP 4
CMPLT .L1 A6,0,A1 ; |99|
[!A1] B .S1 L10 ; |99|
NOP 5
; BRANCH OCCURS ; |99|
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;* Disqualified loop: loop contains a call
;*----------------------------------------------------------------------------*
L9:
.line 12
B .S1 _ComputeVLI ; |101|
MVKL .S2 RL2,B3 ; |101|
MVKH .S2 RL2,B3 ; |101|
MV .D1 A6,A4 ; |101|
NOP 2
RL2: ; CALL OCCURS ; |101|
LDW .D2T1 *+DP(_pVLITAB),A0 ; |101|
NOP 4
STB .D1T1 A4,*+A0[A6] ; |101|
.line 13
ADD .D1 1,A6,A0 ; |102|
EXT .S1 A0,16,16,A6 ; |102|
CMPLT .L1 A6,0,A1 ; |102|
[ A1] B .S1 L9 ; |102|
NOP 5
; BRANCH OCCURS ; |102|
;** --------------------------------------------------------------------------*
L10:
.line 14
LDW .D2T2 *++SP(8),B3 ; |103|
NOP 4
B .S2 B3 ; |103|
NOP 5
; BRANCH OCCURS ; |103|
.endfunc 103,000080000h,8
.sect ".text"
.global _BuildSTDHuffTab
.sym _BuildSTDHuffTab,_BuildSTDHuffTab, 32, 2, 0
.func 159
;******************************************************************************
;* FUNCTION NAME: _BuildSTDHuffTab *
;* *
;* Regs Modified : A0,A1,A3,A5,A7,A8,B0,B1,B4,B5,B6 *
;* Regs Used : A0,A1,A3,A4,A5,A6,A7,A8,B0,B1,B3,B4,B5,B6 *
;* Local Frame Size : 0 Args + 0 Auto + 0 Save = 0 byte *
;******************************************************************************
_BuildSTDHuffTab:
;** --------------------------------------------------------------------------*
.line 2
.sym _nrcodes,4, 28, 17, 32
.sym _stdTab,20, 28, 17, 32
.sym _huffCode,6, 24, 17, 32, _tagHUFFCODE
.sym _huffCode,6, 24, 4, 32, _tagHUFFCODE
.sym _stdTab,0, 28, 4, 32
.sym _nrcodes,4, 28, 4, 32
.sym _i,7, 4, 4, 32
.sym _j,5, 4, 4, 32
.sym _k,16, 4, 4, 32
.sym _code,20, 13, 4, 16
MV .S1X B4,A0
.line 8
MVK .S2 0x10,B1 ; |166|
.line 5
ZERO .D2 B0 ; |163|
.line 6
ZERO .D2 B4 ; |164|
.line 8
MVK .S1 0x1,A7 ; |166|
;** --------------------------------------------------------------------------*
;** BEGIN LOOP L11
;** --------------------------------------------------------------------------*
L11:
.line 10
LDBU .D1T1 *+A7[A4],A1 ; |168|
NOP 4
[!A1] B .S1 L13 ; |168|
[ A1] MVK .S1 0x1,A5 ; |168|
[ A1] ADD .L1X B0,A0,A8
NOP 3
; BRANCH OCCURS ; |168|
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 168
;* Loop opening brace source line : 169
;* Loop closing brace source line : 174
;* Known Minimum Trip Count : 1
;* Known Max Trip Count Factor : 1
;* Loop Carried Dependency Bound(^) : 25
;* Unpartitioned Resource Bound : 5
;* Partitioned Resource Bound(*) : 6
;* Resource Partition:
;* A-side B-side
;* .L units 0 1
;* .S units 1 1
;* .D units 3 2
;* .M units 1 1
;* .X cross paths 0 2
;* .T address paths 3 2
;* Long read paths 1 1
;* Long write paths 0 0
;* Logical ops (.LS) 0 1 (.L or .S unit)
;* Addition ops (.LSD) 12 5 (.L or .S or .D unit)
;* Bound(.L .S .LS) 1 2
;* Bound(.L .S .D .LS .LSD) 6* 4
;*
;* Searching for software pipeline schedule at ...
;* ii = 25 Too many predicates live on one side
;* Regs Live Always : 4/3 (A/B-side)
;* Max Regs Live : 10/7
;* Max Cond Regs Live : 3/1
;* ii = 25 Too many predicates live on one side
;* Regs Live Always : 4/3 (A/B-side)
;* Max Regs Live : 11/8
;* Max Cond Regs Live : 3/1
;* ii = 25 Too many predicates live on one side
;* Regs Live Always : 4/3 (A/B-side)
;* Max Regs Live : 11/7
;* Max Cond Regs Live : 3/1
;* ii = 26 Too many predicates live on one side
;* Regs Live Always : 4/3 (A/B-side)
;* Max Regs Live : 10/7
;* Max Cond Regs Live : 3/1
;* ii = 26 Too many predicates live on one side
;* Regs Live Always : 4/3 (A/B-side)
;* Max Regs Live : 11/8
;* Max Cond Regs Live : 3/1
;* ii = 26 Too many predicates live on one side
;* Regs Live Always : 4/3 (A/B-side)
;* Max Regs Live : 11/7
;* Max Cond Regs Live : 3/1
;* ii = 27 Too many predicates live on one side
;* Regs Live Always : 4/3 (A/B-side)
;* Max Regs Live : 10/7
;* Max Cond Regs Live : 3/1
;* ii = 27 Too many predicates live on one side
;* Regs Live Always : 4/3 (A/B-side)
;* Max Regs Live : 11/8
;* Max Cond Regs Live : 3/1
;* ii = 27 Too many predicates live on one side
;* Regs Live Always : 4/3 (A/B-side)
;* Max Regs Live : 11/7
;* Max Cond Regs Live : 3/1
;* Disqualified loop: did not find schedule
;*----------------------------------------------------------------------------*
L12:
.line 12
LDBU .D1T1 *A8,A3 ; |170|
NOP 4
MPYSU .M2X 6,A3,B5 ; |170|
NOP 1
ADD .S2X A6,B5,B5 ; |170|
STH .D2T2 B4,*B5 ; |170|
.line 13
LDBU .D1T1 *A8++,A3 ; |171|
NOP 4
MPYSU .M1 6,A3,A3 ; |171|
NOP 1
ADD .D1 A6,A3,A3 ; |171|
STB .D1T1 A7,*+A3(2) ; |171|
.line 14
ADD .D2 1,B0,B0 ; |172|
.line 15
ADD .D2 1,B4,B4 ; |173|
EXTU .S2 B4,16,16,B4 ; |173|
.line 16
LDBU .D1T1 *+A7[A4],A3 ; |174|
ADD .D1 1,A5,A5 ; |174|
NOP 3
CMPLT .L1 A3,A5,A1 ; |174|
[!A1] B .S1 L12 ; |174|
NOP 5
; BRANCH OCCURS ; |174|
;** --------------------------------------------------------------------------*
L13:
.line 17
EXTU .S2 B4,17,16,B4
.line 18
SUB .D2 B1,1,B1 ; |176|
[ B1] B .S1 L11 ; |176|
ADD .D1 1,A7,A7 ; |176|
NOP 4
; BRANCH OCCURS ; |176|
;** --------------------------------------------------------------------------*
.line 20
CMPGT .L2 B0,0,B1 ; |178|
[!B1] B .S1 L17 ; |178|
[ B1] ADD .D1 4,A6,A3
NOP 4
; BRANCH OCCURS ; |178|
;** --------------------------------------------------------------------------*
.line 22
MVC .S2 CSR,B6
AND .S2 -2,B6,B5
MV .L2X A3,B4
|| MVC .S2 B5,CSR ; interrupts off
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 178
;* Loop opening brace source line : 179
;* Loop closing brace source line : 181
;* Known Minimum Trip Count : 1
;* Known Max Trip Count Factor : 1
;* Loop Carried Dependency Bound(^) : 7
;* Unpartitioned Resource Bound : 1
;* Partitioned Resource Bound(*) : 1
;* Resource Partition:
;* A-side B-side
;* .L units 0 0
;* .S units 1* 0
;* .D units 1* 1*
;* .M units 0 0
;* .X cross paths 0 1*
;* .T address paths 1* 1*
;* Long read paths 0 1*
;* Long write paths 0 0
;* Logical ops (.LS) 0 1 (.L or .S unit)
;* Addition ops (.LSD) 0 1 (.L or .S or .D unit)
;* Bound(.L .S .LS) 1* 1*
;* Bound(.L .S .D .LS .LSD) 1* 1*
;*
;* Searching for software pipeline schedule at ...
;* ii = 7 Schedule found with 1 iterations in parallel
;* done
;*
;* Collapsed epilog stages : 0
;* Collapsed prolog stages : 0
;*
;* Minimum safe trip count : 1
;*----------------------------------------------------------------------------*
L14: ; PIPED LOOP PROLOG
;** --------------------------------------------------------------------------*
L15: ; PIPED LOOP KERNEL
[ B0] SUB .D2 B0,1,B0 ; |181|
|| LDBU .D1T1 *A0++,A3 ; ^ |180|
[ B0] B .S1 L15 ; |181|
NOP 3
MV .S2X A3,B5 ; ^ Define a twin register
STH .D2T2 B5,*B4++(6) ; ^ |180|
;** --------------------------------------------------------------------------*
L16: ; PIPED LOOP EPILOG
;** --------------------------------------------------------------------------*
MVC .S2 B6,CSR ; interrupts on
;** --------------------------------------------------------------------------*
L17:
.line 25
B .S2 B3 ; |183|
NOP 5
; BRANCH OCCURS ; |183|
.endfunc 183,000000000h,0
;******************************************************************************
;* MARK THE END OF THE SCALAR INIT RECORD IN CINIT:C *
;******************************************************************************
CIR: .sect ".cinit:c"
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;******************************************************************************
.global _pVLITAB
;******************************************************************************
;* TYPE INFORMATION *
;******************************************************************************
.sym _BYTE, 0, 12, 13, 8
.sym _WORD, 0, 13, 13, 16
.stag _tagHUFFCODE, 48
.member _code, 0, 13, 8, 16
.member _length, 16, 12, 8, 8
.member _val, 32, 13, 8, 16
.eos
.sym _HUFFCODE, 0, 8, 13, 48,_tagHUFFCODE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -