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

📄 dspjpeg.asm

📁 DSP GEPE 压缩算法
💻 ASM
📖 第 1 页 / 共 5 页
字号:

           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 + -