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

📄 dec_gain.asm

📁 g.729汇编手工优化
💻 ASM
字号:
;***************************************************************
;* TMS320C54x C/C++ Codegen                   PC Version 3.83  *
;* Date/Time created: Mon Aug 22 19:45:28 2005                 *
;***************************************************************
	.mmregs
FP	.set	AR7
	.c_mode
	.file	"DEC_GAIN.C"

	.sect	".cinit"
	.align	1
	.field  	IR_1,16
	.field  	_past_qua_en$1+0,16
	.field  	-14336,16			; _past_qua_en$1[0] @ 0
	.field  	-14336,16			; _past_qua_en$1[1] @ 16
	.field  	-14336,16			; _past_qua_en$1[2] @ 32
	.field  	-14336,16			; _past_qua_en$1[3] @ 48
IR_1:	.set	4

	.sect	".text"
	.bss	_past_qua_en$1,4,0,0
	.sym	_past_qua_en,_past_qua_en$1, 51, 3, 64,, 4
;	d:\program files\ti\c5400\cgtools\bin\opt500.exe -i15 -q -O3 C:\DOCUME~1\ltd\LOCALS~1\Temp\TI1560_2 C:\DOCUME~1\ltd\LOCALS~1\Temp\TI1560_5 -w e:/ata_work_dir/g729a_v1.7_src/G729a_v1_7/Debug 

	.sect	".text"
	.global	_Dec_gain
	.sym	_Dec_gain,_Dec_gain, 32, 2, 0
	.func	34

;***************************************************************
;* FUNCTION DEF: _Dec_gain                                     *
;***************************************************************

;***************************************************************
;*                                                             *
;* Using -g (debug) with optimization (-o3) may disable key op *
;*                                                             *
;***************************************************************
_Dec_gain:
	.line	9
;* A     assigned to _index
	.sym	_index,0, 3, 17, 16
	.sym	_code,16, 19, 9, 16
	.sym	_L_subfr,17, 3, 9, 16
	.sym	_bfi,18, 3, 9, 16
	.sym	_gain_pit,19, 19, 9, 16
	.sym	_gain_cod,20, 19, 9, 16
;* AR7   assigned to _index
	.sym	_index,16, 3, 4, 16
	.sym	_code,7, 19, 1, 16
	.sym	_L_subfr,6, 3, 1, 16
;* A     assigned to _bfi
	.sym	_bfi,0, 3, 4, 16
;* AR1   assigned to _gain_pit
	.sym	_gain_pit,10, 19, 4, 16
;* AR6   assigned to _gain_cod
	.sym	_gain_cod,15, 19, 4, 16
;* B     assigned to _index1
	.sym	_index1,6, 3, 4, 16
;* A     assigned to _index2
	.sym	_index2,0, 3, 4, 16
;* A     assigned to _tmp
	.sym	_tmp,0, 3, 4, 16
	.sym	_gcode0,4, 3, 1, 16
	.sym	_exp_gcode0,5, 3, 1, 16
	.sym	_L_gbk12,10, 5, 1, 32
;* A     assigned to _L_acc
	.sym	_L_acc,0, 5, 4, 32
;* A     assigned to C$4
;* AR7   assigned to C$3
;* AR1   assigned to C$1
        PSHM      AR1
        PSHM      AR6
        PSHM      AR7
        FRAME     #-12
        NOP
        LD        *SP(17),B
        STL       B,*SP(6)
        LD        *SP(16),B
        MVDK      *SP(19),*(AR1)
        STLM      A,AR7
        STL       B,*SP(7)
        LD        *SP(18),A
        MVDK      *SP(20),*(AR6)
	.line	25
        RSBX      OVM
        LD        *(AL),A               ; |58| 
        BC        L2,AEQ                ; |58| 
        ; branch occurs ; |58| 
	.line	26
        LD        #29491,16,A           ; |59| 
        SSBX      FRCT
        SSBX      SXM
        SSBX      OVM
        NOP
        MPYA      *AR1                  ; |59| 
        SFTA      B,-16,A               ; |59| 
        STL       A,*AR1
	.line	27
        RSBX      OVM
        LD        *(AL),A               ; |60| 
        SUB       #29492,A,A            ; |60| 
        BC        L1,ALT                ; |60| 
        ; branch occurs ; |60| 
        ST        #29491,*AR1           ; |60| 
L1:    
	.line	28
        LD        #32111,16,A           ; |61| 
        SSBX      OVM
        NOP
        MPYA      *AR6                  ; |61| 
        STH       B,*AR6                ; |61| 
	.line	34
        RSBX      FRCT
        RSBX      OVM
        NOP
        CALLD     #_Gain_update_erasure ; |67| 
        LD        #_past_qua_en$1,A
        ; call occurs [#_Gain_update_erasure] ; |67| 
	.line	36
        B         L3                    ; |69| 
        ; branch occurs ; |69| 
L2:    
	.line	41
        RSBX      FRCT
        ST        #4,*SP(0)             ; |74| 
        CALLD     #_shr                 ; |74| 
        NOP
        LDM       AR7,A
        ; call occurs [#_shr] ; |74| 
        STLM      A,AR2
        NOP
        NOP
        LD        *AR2(_imap1),B
	.line	42
        LDM       AR7,A
        AND       #15,A,A               ; |75| 
        STLM      A,AR2
        NOP
        NOP
        LD        *AR2(_imap2),A
	.line	43
        RSBX      OVM
        NOP
        SFTL      A,#1,A                ; |76| 
        ADD       #_gbk2,A,A            ; |76| 
        STLM      A,AR7
        SFTL      B,#1,A                ; |76| 
        ADD       #_gbk1,A,A            ; |76| 
        STLM      A,AR2
        SSBX      SXM
        STL       A,*SP(8)
        LD        *AR2,16,A             ; |76| 
        SSBX      OVM
        NOP
        ADD       *AR7,16,A,A           ; |76| 
        STH       A,*AR1                ; |76| 
	.line	53
        RSBX      FRCT
        LD        *SP(7),A
        STL       A,*SP(0)
        LD        *SP(6),A
        STL       A,*SP(1)
        RSBX      OVM
        LDM       SP,A
        ADD       #4,A
        STL       A,*SP(2)
        LDM       SP,A
        ADD       #5,A
        STL       A,*SP(3)
        STM       #_past_qua_en$1,AR1
        CALLD     #_Gain_predict        ; |86| 
        NOP
        LDM       AR1,A
        ; call occurs [#_Gain_predict] ; |86| 
	.line	61
        SSBX      SXM
        RSBX      OVM
        MVDK      *SP(8),*(AR2)
        LD        *AR7(1),B             ; |94| 
        LD        *AR2(1),A             ; |94| 
        RSBX      SXM
        SSBX      OVM
        NOP
        ADD       B,A                   ; |94| 
        DST       A,*SP(10)             ; |94| 
	.line	62
        RSBX      OVM
        RSBX      FRCT
        ST        #1,*SP(0)             ; |95| 
        CALL      #_L_shr               ; |95| 
        ; call occurs [#_L_shr] ; |95| 
	.line	65
        SSBX      SXM
        RSBX      OVM
        NOP
        LD        *SP(5),16,B           ; |98| 
        SSBX      OVM
        NOP
        NEG       B,B                   ; |98| 
        ADD       #4,16,B,B             ; |98| 
        STH       B,*SP(0)              ; |98| 
        LD        *SP(4),T
        SSBX      FRCT
        MPY       *(AL),A               ; |98| 
        RSBX      FRCT
        RSBX      OVM
        NOP
        CALL      #_L_shl               ; |98| 
        ; call occurs [#_L_shl] ; |98| 
	.line	66
        SFTL      A,#-16,A              ; |99| 
        STL       A,*AR6                ; |99| 
	.line	71
        RSBX      OVM
        NOP
        DLD       *SP(10),A
        RSBX      FRCT
        DST       A,*SP(0)              ; |104| 
        CALLD     #_Gain_update         ; |104| 
        NOP
        LDM       AR1,A
        ; call occurs [#_Gain_update] ; |104| 
L3:    
	.line	75
        ANDM      #-833,*(ST1)
        ANDM      #-4,*(PMST)
        FRAME     #12
        POPM      AR7
        POPM      AR6
        POPM      AR1
        RET
        ; return occurs
	.endfunc	108,000018400h,15


;***************************************************************
;* UNDEFINED EXTERNAL REFERENCES                               *
;***************************************************************
	.global	_L_shl
	.global	_L_shr
	.global	_shr
	.global	_Gain_predict
	.global	_Gain_update
	.global	_Gain_update_erasure
	.global	_gbk1
	.global	_gbk2
	.global	_imap1
	.global	_imap2

;***************************************************************
;* TYPE INFORMATION                                            *
;***************************************************************
	.sym	_Word16, 0, 3, 13, 16
	.sym	_Word16, 0, 3, 13, 16
	.sym	_Word32, 0, 5, 13, 32

⌨️ 快捷键说明

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