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

📄 lspgetq_asm.asm

📁 g.729汇编手工优化
💻 ASM
📖 第 1 页 / 共 4 页
字号:
L19:    
;** 38	-----------------------    Lsp_expand_1_2(&buf, 10);
;** 39	-----------------------    Lsp_expand_1_2(&buf, 5);
;** 41	-----------------------    Lsp_prev_compose(&buf, lspq, fg, freq_prev, fg_sum);
;** 43	-----------------------    Lsp_prev_update(&buf, freq_prev);
;** 45	-----------------------    Lsp_stability(lspq);
;** 47	-----------------------    return;
	.line	23
;----------------------------------------------------------------------
;  38 | Lsp_expand_1_2(buf, GAP1);                                             
;----------------------------------------------------------------------
        ;;RSBX      OVM
        ST        #10,*SP(0)            ; |38| 
        LDM       SP,A
        CALLD     #_Lsp_expand_1_2      ; |38| 
        ADD       #4,A
        ; call occurs [#_Lsp_expand_1_2] ; |38| 
	.line	24
;----------------------------------------------------------------------
;  39 | Lsp_expand_1_2(buf, GAP2);                                             
;----------------------------------------------------------------------
        ;;RSBX      FRCT
        ST        #5,*SP(0)             ; |39| 
        ;;RSBX      OVM
        LDM       SP,A
        CALLD     #_Lsp_expand_1_2      ; |39| 
        ADD       #4,A
        ; call occurs [#_Lsp_expand_1_2] ; |39| 
	.line	26
;----------------------------------------------------------------------
;  41 | Lsp_prev_compose(buf, lspq, fg, freq_prev, fg_sum);                    
;----------------------------------------------------------------------
        MVKD      *(AR6),*SP(0)
        MVKD      *(AR7),*SP(1)
        RSBX      FRCT
        MVKD      *(AR1),*SP(2)
        LD        *SP(14),A
        STL       A,*SP(3)
        ;;RSBX      OVM
        LDM       SP,A
        CALLD     #_Lsp_prev_compose    ; |41| 
        ADD       #4,A
        ; call occurs [#_Lsp_prev_compose] ; |41| 
	.line	28
;----------------------------------------------------------------------
;  43 | Lsp_prev_update(buf, freq_prev);                                       
;----------------------------------------------------------------------
        ;;RSBX      OVM
        ;;RSBX      FRCT
        MVKD      *(AR1),*SP(0)
        LDM       SP,A
        CALLD     #_Lsp_prev_update     ; |43| 
        ADD       #4,A
        ; call occurs [#_Lsp_prev_update] ; |43| 
	.line	30
;----------------------------------------------------------------------
;  45 | Lsp_stability( lspq );                                                 
;----------------------------------------------------------------------
        ;;RSBX      OVM
        ;;RSBX      FRCT
        ;;NOP
        CALLD     #_Lsp_stability       ; |45| 
        NOP
        LDM       AR6,A
        ; call occurs [#_Lsp_stability] ; |45| 
	.line	32
;----------------------------------------------------------------------
;  47 | return;                                                                
;----------------------------------------------------------------------
	.line	33
        ANDM      #-833,*(ST1)
        ANDM      #-4,*(PMST)
        FRAME     #16
        POPM      AR7
        POPM      AR6
        POPM      AR1
        RET
        ; return occurs
;;	.endfunc	48,000018400h,19




	.sect	".text"
	.global	_Lsp_expand_2

;----------------------------------------------------------------------
;  72 | void Lsp_expand_2(                                                     
;  73 | Word16 buf[],       /* (i/o) Q13 : LSP vectors */                      
;  74 | Word16 gap          /* (i)   Q13 : gap         */                      
;  75 | )                                                                      
;----------------------------------------------------------------------

;***************************************************************
;* FUNCTION DEF: _Lsp_expand_2                                 *
;***************************************************************

;***************************************************************
;*                                                             *
;* Using -g (debug) with optimization (-o3) may disable key op *
;*                                                             *
;***************************************************************
_Lsp_expand_2:
	.line	5
;* A     assigned to _buf
	.sym	_buf,0, 19, 17, 16
	.sym	_gap,6, 3, 9, 16
;* AR1   assigned to U$5
	.sym	U$5,10, 19, 4, 16
;* AR6   assigned to L$1
	.sym	L$1,15, 4, 4, 16
;* A     assigned to _tmp
	.sym	_tmp,0, 3, 4, 16
;* AR7   assigned to _gap
	.sym	_gap,16, 3, 4, 16
;* A     assigned to _buf
	.sym	_buf,0, 19, 4, 16
;**  	-----------------------    #pragma MUST_ITERATE(5, 5, 5)
;**  	-----------------------    #pragma LOOP_FLAGS(5120u)
;**  	-----------------------    U$5 = &buf[4];
;**  	-----------------------    L$1 = 5;
        PSHM      AR1
        PSHM      AR6
        PSHM      AR7
        FRAME     #-2
;----------------------------------------------------------------------
;  77 | Word16 j, tmp;                                                         
;  78 | Word16 diff;        /* Q13 */                                          
;  80 | for ( j = NC ; j < M ; j++ ) {                                         
;  81 |   diff = sub( buf[j-1], buf[j] );                                      
;----------------------------------------------------------------------
        ;;RSBX      OVM
        ;;NOP
        ADD       #4,A,A
        STLM      A,AR1
        ;;NOP
        STM       #5,AR6
        MVDK      *SP(6),*(AR7)
L20:    
;**	-----------------------g2:
;** 82	-----------------------    if ( (tmp = crshft(_sadd(_ssub(*U$5, U$5[1]), gap), 1)) <= 0 ) goto g4;
	.line	11
;----------------------------------------------------------------------
;  82 | tmp = shr( add( diff, gap), 1 );                                       
;  84 | if ( tmp > 0 ) {                                                       
;----------------------------------------------------------------------
        ;;RSBX      OVM
        SSBX      SXM
        ;;ST        #1,*SP(0)             ; |82| 
        ;;RSBX      FRCT
        LD        *AR1,16,A             ; |82| 
        SSBX      OVM
        SUB       *AR1(1),16,A,A        ; |82| 
        ADD       *(AR7),16,A,A         ; |82| 
        ;;RSBX      OVM
        ;;NOP
        ;;CALLD     #_crshft              ; |82| 
        SFTA	A,-1;;
        NOP
        SFTA      A,-16,A               ; |82| 
        ; call occurs [#_crshft] ; |82| 
        ;;SSBX      SXM
        LD        *(AL),A               ; |82| 
        BC        L21,ALEQ              ; |82| 
        ; branch occurs ; |82| 
;** 85	-----------------------    *U$5 = _ssub(*U$5, tmp);
;** 86	-----------------------    U$5[1] = _sadd(U$5[1], tmp);
	.line	14
;----------------------------------------------------------------------
;  85 | buf[j-1] = sub( buf[j-1], tmp );                                       
;----------------------------------------------------------------------
        ;;RSBX      OVM
        ;;NOP
        LD        *AR1,16,B             ; |85| 
        ;;SSBX      OVM
        SUB       *(AL),16,B,B          ; |85| 
        STH       B,*AR1                ; |85| 
	.line	15
;----------------------------------------------------------------------
;  86 | buf[j]   = add( buf[j], tmp );                                         
;----------------------------------------------------------------------
        ;;RSBX      OVM
        LD        *AR1(1),16,B          ; |86| 
        ;;SSBX      OVM
        ADD       *(AL),16,B,A          ; |86| 
        STH       A,*AR1(1)             ; |86| 
L21:    
;**	-----------------------g4:
;** 88	-----------------------    ++U$5;
;** 88	-----------------------    if ( --L$1 ) goto g2;
;**  	-----------------------    return;
	.line	17
;----------------------------------------------------------------------
;  89 | return;                                                                
;----------------------------------------------------------------------
        BANZD     L20,*+AR6(-1)         ; |88| 
        ;;NOP
        MAR       *AR1+
        ; branch occurs ; |88| 
	.line	19
        ANDM      #-833,*(ST1)
        ANDM      #-4,*(PMST)
        FRAME     #2
        POPM      AR7
        POPM      AR6
        POPM      AR1
        RET
        ; return occurs
;;endfunc	90,000018400h,5



	.sect	".text"
	.global	_Lsp_expand_1

;----------------------------------------------------------------------
;  51 | void Lsp_expand_1(                                                     
;  52 | Word16 buf[],        /* (i/o) Q13 : LSP vectors */                     
;  53 | Word16 gap           /* (i)   Q13 : gap         */                     
;  54 | )                                                                      
;----------------------------------------------------------------------

;***************************************************************
;* FUNCTION DEF: _Lsp_expand_1                                 *
;***************************************************************

;***************************************************************
;*                                                             *
;* Using -g (debug) with optimization (-o3) may disable key op *
;*                                                             *
;***************************************************************
_Lsp_expand_1:
	.line	5
;* A     assigned to _buf
	.sym	_buf,0, 19, 17, 16
	.sym	_gap,6, 3, 9, 16
;* AR1   assigned to U$4
	.sym	U$4,10, 19, 4, 16
;* AR6   assigned to L$1
	.sym	L$1,15, 4, 4, 16
;* A     assigned to _tmp
	.sym	_tmp,0, 3, 4, 16
;* AR7   assigned to _gap
	.sym	_gap,16, 3, 4, 16
;* A     assigned to _buf
	.sym	_buf,0, 19, 4, 16
;**  	-----------------------    #pragma MUST_ITERATE(4, 4, 4)
;**  	-----------------------    #pragma LOOP_FLAGS(5120u)
;**  	-----------------------    U$4 = buf;
;**  	-----------------------    L$1 = 4;
        PSHM      AR1
        PSHM      AR6
        PSHM      AR7
        FRAME     #-2
;----------------------------------------------------------------------
;  56 | Word16 j, tmp;                                                         
;  57 | Word16 diff;        /* Q13 */                                          
;  59 | for ( j = 1 ; j < NC ; j++ ) {                                         
;  60 |   diff = sub( buf[j-1], buf[j] );                                      
;----------------------------------------------------------------------
        STLM      A,AR1
        ;;NOP
        STM       #4,AR6
        MVDK      *SP(6),*(AR7)
L22:    
;**	-----------------------g2:
;** 61	-----------------------    if ( (tmp = crshft(_sadd(_ssub(*U$4, U$4[1]), gap), 1)) <= 0 ) goto g4;
	.line	11
;----------------------------------------------------------------------
;  61 | tmp = shr( add( diff, gap), 1 );                                       
;  63 | if ( tmp >  0 ) {                                                      
;----------------------------------------------------------------------
        ;;RSBX      OVM
        SSBX      SXM
        ;;ST        #1,*SP(0)             ; |61| 
        RSBX      FRCT
        LD        *AR1,16,A             ; |61| 
        SSBX      OVM
        SUB       *AR1(1),16,A,A        ; |61| 
        ADD       *(AR7),16,A,A         ; |61| 
        ;;RSBX      OVM
        ;;NOP
        ;;CALLD     #_crshft              ; |61| 
        SFTA	A,-1;;WLY
        NOP
        SFTA      A,-16,A               ; |61| 
        ; call occurs [#_crshft] ; |61| 
        ;;SSBX      SXM
        LD        *(AL),A               ; |61| 
        BC        L23,ALEQ              ; |61| 
        ; branch occurs ; |61| 
;** 64	-----------------------    *U$4 = _ssub(*U$4, tmp);
;** 65	-----------------------    U$4[1] = _sadd(U$4[1], tmp);
	.line	14
;----------------------------------------------------------------------
;  64 | buf[j-1] = sub( buf[j-1], tmp );                                       
;----------------------------------------------------------------------
        ;;RSBX      OVM
        ;;NOP
        LD        *AR1,16,B             ; |64| 
        ;;SSBX      OVM
        SUB       *(AL),16,B,B          ; |64| 
        STH       B,*AR1                ; |64| 
	.line	15
;----------------------------------------------------------------------
;  65 | buf[j]   = add( buf[j], tmp );                                         
;----------------------------------------------------------------------
        ;;RSBX      OVM
        LD        *AR1(1),16,B          ; |65| 
        ;;SSBX      OVM
        ADD       *(AL),16,B,A          ; |65| 
        STH       A,*AR1(1)             ; |65| 
L23:    
;**	-----------------------g4:
;** 67	-----------------------    ++U$4;
;** 67	-----------------------    if ( --L$1 ) goto g2;
;**  	-----------------------    return;
	.line	17
;----------------------------------------------------------------------
;  68 | return;                                                                
;----------------------------------------------------------------------
        BANZD     L22,*+AR6(-1)         ; |67| 
       ;; NOP
        MAR       *AR1+
        ; branch occurs ; |67| 
	.line	19
        ANDM      #-833,*(ST1)
        ANDM      #-4,*(PMST)
        FRAME     #2
        POPM      AR7
        POPM      AR6
        POPM      AR1
        RET
        ; return occurs
;;	.endfunc	69,000018400h,5


;***************************************************************
;* STRINGS                                                     *
;***************************************************************
	.sect	".const"
SL1:	.string	"lsp_stability warning Low ",10,0
SL2:	.string	"lsp_stability warning High ",10,0
;***************************************************************
;* UNDEFINED EXTERNAL REFERENCES                               *
;***************************************************************
	.global	_printf
	.global	_L_shl
	.global	_Copy	
	.global	_Lsp_stability
	.global	_Lsp_prev_compose
	.global	_Lsp_expand_1_2	
	.global	_Lsp_prev_update	

⌨️ 快捷键说明

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