⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dspjpeg.asm

📁 DSP GEPE 压缩算法
💻 ASM
📖 第 1 页 / 共 5 页
字号:
   [ A1]   SUB     .D1     A0,1,A0           ; |469| 
   [ A1]   STH     .D2T1   A0,*+SP(4)        ; |469| 
	.line	9
   [!A1]   STH     .D2T1   A4,*+SP(4)        ; |465| 
	.line	17
           ADD     .S1X    4,SP,A0           ; |473| 
   [ B0]   LDH     .D1T2   *+A0(2),B4        ; |473| 
   [ B0]   LDH     .D1T1   *A0,A0            ; |473| 
           NOP             4
   [ B0]   STH     .D2T1   A0,*B0            ; |473| 
   [ B0]   STH     .D2T2   B4,*+B0(2)        ; |473| 
	.line	18
           RET     .S2     B3                ; |474| 
           ADD     .D2     8,SP,SP           ; |474| 
           NOP             4
           ; BRANCH OCCURS                   ; |474| 
	.endfunc	474,000000000h,8



	.sect	".text"
	.global	_ProcessDU
	.sym	_ProcessDU,_ProcessDU, 32, 2, 0
	.func	204

;******************************************************************************
;* FUNCTION NAME: _ProcessDU                                                  *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,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,A12,B0,B1,B2,  *
;*                           B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,DP,SP       *
;*   Local Frame Size  : 0 Args + 396 Auto + 32 Save = 428 byte               *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_ProcessDU:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_lpBuf,4, 19, 17, 32
	.sym	_quantTab,20, 30, 17, 32
	.sym	_dcHuffTab,6, 24, 17, 32, _tagHUFFCODE
	.sym	_acHuffTab,22, 24, 17, 32, _tagHUFFCODE
	.sym	_DC,8, 19, 17, 32
	.sym	_DC,27, 19, 4, 32
	.sym	_acHuffTab,12, 24, 4, 32, _tagHUFFCODE
	.sym	_dcHuffTab,26, 24, 4, 32, _tagHUFFCODE
	.sym	_quantTab,10, 30, 4, 32
	.sym	_lpBuf,11, 19, 4, 32
	.sym	_i,21, 4, 4, 32
	.sym	_EndBit,2, 4, 4, 32
	.sym	_diffVal,18, 3, 4, 16
	.sym	_acLen,4, 12, 1, 8
	.sym	_sigBuf,16, 51, 1, 1024,, 64
	.sym	_acSym,144, 56, 1, 2048, _tagACSYM, 64

           ADDK    .S2     -432,SP           ; |205| 
||         MV      .S1X    SP,A9             ; |205| 

           STW     .D2T2   B13,*+SP(432)
           STW     .D2T2   B12,*+SP(428)

           STW     .D2T2   B11,*+SP(424)
||         STW     .D1T1   A11,*-A9(24)

           STW     .D2T2   B10,*+SP(420)
||         STW     .D1T1   A10,*-A9(28)

           STW     .D1T1   A12,*-A9(20)
||         STW     .D2T2   B3,*+SP(416)


           MV      .S2X    A8,B11            ; |205| 
||         MV      .S1X    B4,A10            ; |205| 

           MV      .D1     A4,A11            ; |205| 
||         MV      .S2X    A6,B10            ; |205| 
||         MV      .S1X    B6,A12            ; |205| 

	.line	8
           ZERO    .D2     B4                ; |211| 
           STB     .D2T2   B4,*+SP(4)        ; |211| 
	.line	13
           CALL    .S1     _fdct_8x8         ; |216| 
           MVK     .S2     0x1,B4            ; |216| 
           MVKL    .S2     RL2,B3            ; |216| 
           MVKH    .S2     RL2,B3            ; |216| 
           NOP             2
RL2:       ; CALL OCCURS                     ; |216| 
           MV      .S2X    A10,B12
	.line	15
           MVK     .S1     (_FZBT-$bss),A0

           MVK     .S1     0x40,A0           ; |218| 
||         ADD     .S2X    DP,A0,B13

           MV      .D1     A0,A10
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Loop contains a call
;*----------------------------------------------------------------------------*
L11:    
	.line	18

           CALL    .S1     __divu            ; |221| 
||         LDH     .D1T1   *A11++,A0         ; |221| 

           LDW     .D2T2   *B12++,B4         ; |221| 
           MVKL    .S2     RL8,B3            ; |221| 
           MVKH    .S2     RL8,B3            ; |221| 
           NOP             1
           ADD     .D1     A0,A0,A4          ; |221| 
RL8:       ; CALL OCCURS                     ; |221| 
           CALL    .S1     __fltud           ; |221| 
           MVKL    .S2     RL9,B3            ; |221| 
           MVKH    .S2     RL9,B3            ; |221| 
           NOP             3
RL9:       ; CALL OCCURS                     ; |221| 
           CALL    .S1     __addd            ; |221| 
           MVKL    .S2     RL10,B3           ; |221| 
           ZERO    .D2     B5                ; |221| 
           MVKH    .S2     0x3fe00000,B5     ; |221| 
           MVKH    .S2     RL10,B3           ; |221| 
           ZERO    .D2     B4                ; |221| 
RL10:      ; CALL OCCURS                     ; |221| 
           CALL    .S1     __fixdi           ; |221| 
           MVKL    .S2     RL11,B3           ; |221| 
           MVKH    .S2     RL11,B3           ; |221| 
           NOP             3
RL11:      ; CALL OCCURS                     ; |221| 
           LDW     .D2T2   *B13++,B4         ; |221| 
           ADD     .D2     SP,16,B5          ; |221| 
           NOP             3
           STH     .D2T1   A4,*+B5[B4]       ; |221| 
	.line	19
           SUB     .D1     A10,1,A1          ; |222| 
   [ A1]   B       .S1     L11               ; |222| 
           SUB     .D1     A10,1,A10         ; |222| 
           NOP             4
           ; BRANCH OCCURS                   ; |222| 
;** --------------------------------------------------------------------------*
	.line	25
           LDH     .D2T2   *B11,B5           ; |228| 
           LDH     .D2T2   *+SP(16),B4       ; |228| 
           NOP             4
           SUB     .D2     B4,B5,B5          ; |228| 
           EXT     .S2     B5,16,16,B2       ; |228| 
	.line	26
           STH     .D2T2   B4,*B11           ; |229| 
	.line	28
   [ B2]   B       .S1     L12               ; |231| 
           NOP             5
           ; BRANCH OCCURS                   ; |231| 
;** --------------------------------------------------------------------------*

           CALL    .S1     _WriteBitsStream  ; |380| 
||         LDBU    .D2T2   *+B10(2),B4       ; |380| 

           LDHU    .D2T1   *B10,A4           ; |380| 
           MVKL    .S2     RL12,B3           ; |380| 
           MVKH    .S2     RL12,B3           ; |380| 
           NOP             2
RL12:      ; CALL OCCURS                     ; |380| 
	.line	31
           B       .S1     L13               ; |234| 
           ADD     .D2     SP,16,B4
           NOP             4
           ; BRANCH OCCURS                   ; |234| 
;** --------------------------------------------------------------------------*
L12:    
           LDW     .D2T2   *+DP(_pVLITAB),B4 ; |380| 
           MVKL    .S2     RL13,B3           ; |380| 
           MVKH    .S2     RL13,B3           ; |380| 
           NOP             2
           LDBU    .D2T2   *+B4[B2],B4       ; |380| 
           NOP             4
           MPYSU   .M2     6,B4,B4           ; |380| 
           NOP             1
           ADD     .D2     B10,B4,B5         ; |380| 

           LDHU    .D2T1   *B5,A4            ; |380| 
||         CALL    .S1     _WriteBitsStream  ; |380| 

           LDBU    .D2T2   *+B5(2),B4        ; |380| 
           NOP             4
RL13:      ; CALL OCCURS                     ; |380| 
	.line	35
           CALL    .S1     _BuildSym2        ; |238| 
           MV      .S1X    B2,A4             ; |238| 
           MVKL    .S2     RL14,B3           ; |238| 
           ADD     .S1X    10,SP,A3          ; |238| 
           MVKH    .S2     RL14,B3           ; |238| 
           NOP             1
RL14:      ; CALL OCCURS                     ; |238| 

           CALL    .S1     _WriteBitsStream  ; |386| 
||         LDBU    .D2T2   *+SP(12),B4       ; |386| 

           LDHU    .D2T1   *+SP(10),A4       ; |386| 
           MVKL    .S2     RL15,B3           ; |386| 
           MVKH    .S2     RL15,B3           ; |386| 
           NOP             2
RL15:      ; CALL OCCURS                     ; |386| 
           ADD     .D2     SP,16,B4
;** --------------------------------------------------------------------------*
L13:    
	.line	39
           MVK     .S2     0x3f,B6           ; |242| 
	.line	6
           ZERO    .D1     A2                ; |209| 
	.line	39
           MVK     .S2     0x1,B7            ; |242| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 242
;*      Loop opening brace source line   : 243
;*      Loop closing brace source line   : 246
;*      Known Minimum Trip Count         : 63
;*      Known Maximum Trip Count         : 63
;*      Known Max Trip Count Factor      : 63
;*      Loop Carried Dependency Bound(^) : 1
;*      Unpartitioned Resource Bound     : 1
;*      Partitioned Resource Bound(*)    : 1
;*      Resource Partition:
;*                                A-side   B-side
;*      .L units                     0        0     
;*      .S units                     1*       0     
;*      .D units                     0        1*    
;*      .M units                     0        0     
;*      .X cross paths               0        0     
;*      .T address paths             0        1*    
;*      Long read paths              0        0     
;*      Long write paths             0        0     
;*      Logical  ops (.LS)           0        0     (.L or .S unit)
;*      Addition ops (.LSD)          2        2     (.L or .S or .D unit)
;*      Bound(.L .S .LS)             1*       0     
;*      Bound(.L .S .D .LS .LSD)     1*       1*    
;*
;*      Searching for software pipeline schedule at ...
;*         ii = 1  Schedule found with 7 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
;*
;*      For further improvement on this loop, try option -mh5
;*
;*      Minimum safe trip count     : 6
;*----------------------------------------------------------------------------*
L14:    ; PIPED LOOP PROLOG

           ADD     .S2     1,B7,B5           ; |246| (P) <0,1>  ^ Define a twin register
||         B       .S1     L15               ; |246| (P) <0,1> 
||         LDH     .D2T2   *+B4[B7],B0       ; (P) <0,1>  ^ 

           ADD     .S2     1,B5,B5           ; |246| (P) <1,1>  ^ Define a twin register
||         LDH     .D2T2   *+B4[B5],B0       ; (P) <1,1>  ^ 
||         B       .S1     L15               ; |246| (P) <1,1> 

           ADD     .S2     1,B5,B5           ; |246| (P) <2,1>  ^ Define a twin register
||         B       .S1     L15               ; |246| (P) <2,1> 
||         LDH     .D2T2   *+B4[B5],B0       ; (P) <2,1>  ^ 

           ADD     .S2     1,B5,B5           ; |246| (P) <3,1>  ^ Define a twin register
||         LDH     .D2T2   *+B4[B5],B0       ; (P) <3,1>  ^ 
||         B       .S1     L15               ; |246| (P) <3,1> 

           MV      .D1     A2,A3
||         SUB     .S2     B6,11,B1
||         MV      .L1X    B7,A0
||         ADD     .L2     1,B5,B5           ; |246| (P) <4,1>  ^ Define a twin register
||         B       .S1     L15               ; |246| (P) <4,1> 
||         LDH     .D2T2   *+B4[B5],B0       ; (P) <4,1>  ^ 

;** --------------------------------------------------------------------------*
L15:    ; PIPED LOOP KERNEL

           ADD     .D1     1,A0,A0           ; |246| <0,6>  ^ 
|| [ B0]   MV      .L1     A0,A3             ; |245| <0,6>  ^ 
||         ADD     .S2     1,B5,B5           ; |246| <5,1>  ^ Define a twin register
||         LDH     .D2T2   *+B4[B5],B0       ; <5,1>  ^ 
|| [ B1]   B       .S1     L15               ; |246| <5,1> 
|| [ B1]   SUB     .L2     B1,1,B1           ; |246| <6,0> 

;** --------------------------------------------------------------------------*
L16:    ; PIPED LOOP EPILOG

   [ B0]   MV      .D1     A0,A3             ; |245| (E) <2,6>  ^ 
||         ADD     .S1     1,A0,A0           ; |246| (E) <2,6>  ^ 

           ADD     .D1     1,A0,A0           ; |246| (E) <3,6>  ^ 
|| [ B0]   MV      .S1     A0,A3             ; |245| (E) <3,6>  ^ 

   [ B0]   MV      .D1     A0,A3             ; |245| (E) <4,6>  ^ 
||         ADD     .S1     1,A0,A0           ; |246| (E) <4,6>  ^ 

           ADD     .D1     1,A0,A0           ; |246| (E) <5,6>  ^ 
|| [ B0]   MV      .S1     A0,A3             ; |245| (E) <5,6>  ^ 

;** --------------------------------------------------------------------------*
   [ B0]   MV      .D1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -