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

📄 acelp_ca_asm.asm

📁 g.729汇编手工优化
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        ADD       #5,A
        STLM      A,BK
        LD        *SP(50),A
        STL       A,*SP(54)
        LD        *SP(46),A
        STL       A,*SP(50)
        LD        *SP(52),A
        STL       A,*SP(46)
        LD        *SP(49),A
        STL       A,*SP(42)
        LD        *SP(45),A
        STL       A,*SP(43)
;----------------------------------------------------------------------
; 311 | for(k=0; k<NB_POS; k++) {                                              
;----------------------------------------------------------------------
        LD        #0,B
        STM       #7,BRC
        RPTB      L18-1
L15:    
;----------------------------------------------------------------------
; 313 | p4 = rri1i4 + l_fin_sup;                                               
;----------------------------------------------------------------------
        MVDK      *SP(54),*(AR2)
;----------------------------------------------------------------------
; 314 | p3 = rri0i3 + l_fin_sup;                                               
;----------------------------------------------------------------------
        MVDK      *SP(50),*(AR1)
;----------------------------------------------------------------------
; 315 | p2 = rri2i4 + l_fin_inf;                                               
;----------------------------------------------------------------------
        MVDK      *SP(46),*(AR5)
;----------------------------------------------------------------------
; 316 | p1 = rri1i3 + l_fin_inf;                                               
;----------------------------------------------------------------------
        MVDK      *SP(42),*(AR0)
;----------------------------------------------------------------------
; 317 | p0 = rri0i2 + l_fin_inf;                                               
; 319 | ptr_h1 = ptr_hd;                                                       
;----------------------------------------------------------------------
        MVDK      *SP(43),*(AR6)
;----------------------------------------------------------------------
; 320 | ptr_h2 =  ptr_hf;                                                      
;----------------------------------------------------------------------
        MVMD      BK,AR4
        MVMM      SP,AR3
        MAR       *+AR3(#2)
;----------------------------------------------------------------------
; 321 | cor = 0;                                                               
;----------------------------------------------------------------------
        LD        #0,A
        DST       A,*SP(56)             ; |321| 
;----------------------------------------------------------------------
; 322 | for(i=k+(Word16)1; i<NB_POS; i++ ) {                                   
;----------------------------------------------------------------------
        LD        *(BL),A               ; |322| 
        SUB       #7,A,A                ; |322| 
        BC        L17,AGEQ              ; |322| 

        LD        #6,A
        SUB       B,A
        STLM      A,AR7
L16:    
;----------------------------------------------------------------------
; 324 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        DLD       *SP(56),A
        ;SSBX      OVM
        ;NOP
        MAC       *AR4+, *AR3+, A, A    ; |324| 
        DST       A,*SP(56)             ; |324| 
;----------------------------------------------------------------------
; 325 | *p4 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        SFTL      A,#-16,A              ; |325| 
        STL       A,*AR2                ; |325| 

;----------------------------------------------------------------------
; 327 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        DLD       *SP(56),A
        ;SSBX      OVM
        ;NOP
        MAC       *AR4+, *AR3+, A, A    ; |327| 
        DST       A,*SP(56)             ; |327| 
;----------------------------------------------------------------------
; 328 | *p3 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        SFTL      A,#-16,A              ; |328| 
        STL       A,*AR1                ; |328| 

;----------------------------------------------------------------------
; 330 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        DLD       *SP(56),A
        ;SSBX      OVM
        ;NOP
        MAC       *AR4+, *AR3+, A, A    ; |330| 
        DST       A,*SP(56)             ; |330| 

;----------------------------------------------------------------------
; 331 | *p2 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        SFTL      A,#-16,A              ; |331| 
        STL       A,*AR5                ; |331| 

;----------------------------------------------------------------------
; 333 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        DLD       *SP(56),A
        ;SSBX      OVM
        ;NOP
        MAC       *AR4+, *AR3+, A, A    ; |333| 
        DST       A,*SP(56)             ; |333| 

;----------------------------------------------------------------------
; 334 | *p1 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        SFTL      A,#-16,A              ; |334| 
        STL       A,*AR0                ; |334| 

;----------------------------------------------------------------------
; 336 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        DLD       *SP(56),A
        ;SSBX      OVM
        ;NOP
        MAC       *AR4+, *AR3+, A, A    ; |336| 
        DST       A,*SP(56)             ; |336| 

;----------------------------------------------------------------------
; 337 | *p0 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        SFTL      A,#-16,A              ; |337| 
        STL       A,*AR6                ; |337| 
;----------------------------------------------------------------------
; 339 | p4 -= ldec;                                                            
;----------------------------------------------------------------------
        MAR       *+AR2(#-9)
;----------------------------------------------------------------------
; 340 | p3 -= ldec;                                                            
;----------------------------------------------------------------------
        MAR       *+AR1(#-9)
;----------------------------------------------------------------------
; 341 | p2 -= ldec;                                                            
;----------------------------------------------------------------------
        MAR       *+AR5(#-9)
;----------------------------------------------------------------------
; 342 | p1 -= ldec;                                                            
;----------------------------------------------------------------------
        MAR       *+AR0(#-9)
;----------------------------------------------------------------------
; 343 | p0 -= ldec;                                                            
;----------------------------------------------------------------------
        MAR       *+AR6(#-9)
        ;RSBX      OVM
        ;NOP
        NOP
        MAR       *AR7-
        BANZ      L16,*AR7(1)           
L17:    
;----------------------------------------------------------------------
; 345 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        DLD       *SP(56),A
        ;SSBX      OVM
        ;NOP
        MAC       *AR4+, *AR3+, A, A    ; |345| 
        DST       A,*SP(56)             ; |345| 
;----------------------------------------------------------------------
; 346 | *p4 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        SFTL      A,#-16,A              ; |346| 
        STL       A,*AR2                ; |346| 

;----------------------------------------------------------------------
; 348 | cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;                
;----------------------------------------------------------------------
        ;RSBX      OVM
        ;NOP
        DLD       *SP(56),A
        ;SSBX      OVM
        ;NOP
        MAC       *AR4, *AR3, A, A      ; |348| 
        DST       A,*SP(56)             ; |348| 

;----------------------------------------------------------------------
; 349 | *p3 = extract_h(cor);                                                  
;----------------------------------------------------------------------
        SFTL      A,#-16,A              ; |349| 
        STL       A,*AR1                ; |349| 

;----------------------------------------------------------------------
; 351 | l_fin_sup -= NB_POS;                                                   
;----------------------------------------------------------------------
        ;RSBX      OVM
        LD        *SP(54),A
        ADD       #-8,A
        STL       A,*SP(54)
        LD        *SP(50),A
        ADD       #-8,A
        STL       A,*SP(50)

;----------------------------------------------------------------------
; 352 | l_fin_inf--;                                                           
;----------------------------------------------------------------------
        LD        *SP(46),A
        SUB       #1,A
        STL       A,*SP(46)
        LD        *SP(42),A
        SUB       #1,A
        STL       A,*SP(42)
        LD        *SP(43),A
        SUB       #1,A
        STL       A,*SP(43)

;----------------------------------------------------------------------
; 353 | ptr_hf += STEP;                                                        
;----------------------------------------------------------------------
        LDM       BK,A
        ADD       #5,A
        STLM      A,BK
;----------------------------------------------------------------------
; 360 | ptr_hd = h;                                                            
;----------------------------------------------------------------------
        ADD       #1,B
L18:    
;----------------------------------------------------------------------
; 361 | ptr_hf = ptr_hd + 4;                                                   
; 362 | l_fin_sup = MSIZE-1;                                                   
; 363 | l_fin_inf = l_fin_sup-(Word16)1;                                       
;----------------------------------------------------------------------
        LD        *SP(47),A
        MVMM      SP,AR0
        STL       A,*SP(45)
        MVDK      *SP(44),*(BK)
        LD        *SP(48),A
        MAR       *+AR0(#6)
        STL       A,*SP(42)
        MVDK      *SP(51),*(AR6)

;----------------------------------------------------------------------
; 364 | for(k=0; k<NB_POS; k++) {                                              
;----------------------------------------------------------------------
        LD        #0,B
        LD        #7,A
        STL       A,*SP(43)
L19:    
;----------------------------------------------------------------------
; 366 | p3 = rri0i4 + l_fin_sup;                                               
;----------------------------------------------------------------------
        MVDK      *SP(45),*(AR1)

;----------------------------------------------------------------------
; 367 | p2 = rri2i3 + l_fin_inf;                                               
;----------------------------------------------------------------------
        MVMM      AR6,AR7

;----------------------------------------------------------------------
; 368 | p1 = rri1i2 + l_fin_inf;                                               
;----------------------------------------------------------------------
        MVDK      *SP(42),*(AR5)

;----------------------------------------------------------------------
; 369 | p0 = rri0i1 + l_fin_inf;                                               

⌨️ 快捷键说明

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