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

📄 dspfunc.asm

📁 g.729汇编手工优化
💻 ASM
字号:
;***************************************************************
;* TMS320C54x C/C++ Codegen                   PC Version 3.83  *
;* Date/Time created: Mon Aug 22 19:45:30 2005                 *
;***************************************************************
	.mmregs
FP	.set	AR7
	.c_mode
	.file	"DSPFUNC.C"
;	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	_Pow2
	.sym	_Pow2,_Pow2, 37, 2, 0
	.func	35

;***************************************************************
;* FUNCTION DEF: _Pow2                                         *
;***************************************************************

;***************************************************************
;*                                                             *
;* Using -g (debug) with optimization (-o3) may disable key op *
;*                                                             *
;***************************************************************
_Pow2:
	.line	5
;* A     assigned to _exponent
	.sym	_exponent,0, 3, 17, 16
	.sym	_fraction,8, 3, 9, 16
;* A     assigned to _L_x
	.sym	_L_x,0, 5, 4, 32
;* B     assigned to _a
	.sym	_a,6, 3, 4, 16
;* A     assigned to _fraction
	.sym	_fraction,0, 3, 4, 16
;* AR6   assigned to _exponent
	.sym	_exponent,15, 3, 4, 16
;* AR2   assigned to C$2
;* AR1   assigned to C$1
        PSHM      AR1
        PSHM      AR6
        FRAME     #-5
        STLM      A,AR6
        LD        *SP(8),A
	.line	11
        SSBX      FRCT
        SSBX      OVM
        MPY       *(AL),#32,A           ; |45| 
        RSBX      FRCT
        RSBX      OVM
        DST       A,*SP(2)              ; |45| 
        ST        #1,*SP(0)             ; |45| 
        CALL      #_L_shr               ; |45| 
        ; call occurs [#_L_shr] ; |45| 
	.line	12
        LD        #32767,B
        AND       A,B                   ; |46| 
	.line	20
        RSBX      SXM
        RSBX      OVM
        DLD       *SP(2),A
        SFTL      A,#-16,A              ; |54| 
        ADD       #_tabpow,A,A          ; |54| 
        STLM      A,AR2
        LD        #30,16,A              ; |54| 
        SSBX      OVM
        MVDK      *AR2,*(AR1)
        SSBX      SXM
        SUB       *(AR6),16,A,A         ; |54| 
        RSBX      OVM
        STH       A,*SP(0)              ; |54| 
        LD        *(AR1),16,A           ; |54| 
        SSBX      OVM
        SUB       *AR2(1),16,A,A        ; |54| 
        STH       A,*(T)
        RSBX      OVM
        LD        *(AR1),A              ; |54| 
        SFTL      A,#15,A               ; |54| 
        SFTL      A,#1,A                ; |54| 
        SFTA      A,8                   ; |54| 
        SFTA      A,-8                  ; |54| 
        ORM       #2,*(PMST)
        SSBX      FRCT
        SSBX      OVM
        ORM       #2,*(PMST)
        MAS       *(BL), A              ; |54| 
        RSBX      FRCT
        RSBX      OVM
        NOP
        CALL      #_L_crshft_r          ; |54| 
        ; call occurs [#_L_crshft_r] ; |54| 
        SSBX      SXM
        LD        *(AL),A               ; |54| 
	.line	22
	.line	23
        ANDM      #-833,*(ST1)          ; |56| 
        ANDM      #-4,*(PMST)           ; |56| 
        FRAME     #5                    ; |56| 
        POPM      AR6                   ; |56| 
        POPM      AR1                   ; |56| 
        RET       ; |56| 
        ; return occurs ; |56| 
	.endfunc	57,000008400h,7



	.sect	".text"
	.global	_Log2
	.sym	_Log2,_Log2, 32, 2, 0
	.func	82

;***************************************************************
;* FUNCTION DEF: _Log2                                         *
;***************************************************************

;***************************************************************
;*                                                             *
;* Using -g (debug) with optimization (-o3) may disable key op *
;*                                                             *
;***************************************************************
_Log2:
	.line	6
;* A     assigned to _L_x
	.sym	_L_x,0, 5, 17, 32
	.sym	_exponent,6, 19, 9, 16
	.sym	_fraction,7, 19, 9, 16
;* A     assigned to _L_x
	.sym	_L_x,0, 5, 4, 32
;* AR7   assigned to _exponent
	.sym	_exponent,16, 19, 4, 16
;* AR6   assigned to _fraction
	.sym	_fraction,15, 19, 4, 16
;* AR1   assigned to _exp
	.sym	_exp,10, 3, 4, 16
;* AR1   assigned to _i
	.sym	_i,10, 3, 4, 16
;* B     assigned to _a
	.sym	_a,6, 3, 4, 16
;* AR1   assigned to C$2
;* AR2   assigned to C$1
        PSHM      AR1
        PSHM      AR6
        PSHM      AR7
        FRAME     #-2
        NOP
        MVDK      *SP(6),*(AR7)
        MVDK      *SP(7),*(AR6)
	.line	10
        RSBX      OVM
        LD        A,B                   ; |91| 
        SSBX      SXM
        SFTA      B,8                   ; |91| 
        SFTA      B,-8                  ; |91| 
        BC        L1,BLEQ               ; |91| 
        ; branch occurs ; |91| 
	.line	17
        LD        A,B                   ; |98| 
        SFTA      B,8                   ; |98| 
        SFTA      B,-8                  ; |98| 
        EXP       B                     ; |98| 
        NOP
        MVMD      T,AR1
	.line	18
        RSBX      FRCT
        MVKD      *(AR1),*SP(0)
        CALL      #_L_shl               ; |99| 
        ; call occurs [#_L_shl] ; |99| 
	.line	20
        RSBX      OVM
        SSBX      SXM
        LD        #30,16,B              ; |101| 
        SSBX      OVM
        SUB       *(AR1),16,B,B         ; |101| 
        STH       B,*AR7                ; |101| 
	.line	22
        RSBX      FRCT
        RSBX      OVM
        ST        #9,*SP(0)             ; |103| 
        CALL      #_L_shr               ; |103| 
        ; call occurs [#_L_shr] ; |103| 
	.line	23
        LD        A,B                   ; |104| 
        SFTL      B,#-16,B              ; |104| 
        STLM      B,AR1
	.line	24
        RSBX      FRCT
        RSBX      OVM
        ST        #1,*SP(0)             ; |105| 
        CALL      #_L_shr               ; |105| 
        ; call occurs [#_L_shr] ; |105| 
	.line	25
        LD        #32767,B
        AND       A,B                   ; |106| 
	.line	28
        RSBX      OVM
        SSBX      SXM
        LD        *(AR1),16,A           ; |109| 
        SSBX      OVM
        NOP
        SUB       #32,16,A,A            ; |109| 
        SFTA      A,-16,A               ; |109| 
	.line	34
        RSBX      OVM
        NOP
        ADD       #_tablog,A,A          ; |115| 
        STLM      A,AR1
        NOP
        NOP
        MVDK      *AR1,*(AR2)
        LD        *(AR2),16,A           ; |115| 
        SSBX      OVM
        SUB       *AR1(1),16,A,A        ; |115| 
        STH       A,*(T)
        RSBX      OVM
        LD        *(AR2),A              ; |115| 
        SFTL      A,#15,A               ; |115| 
        SFTL      A,#1,A                ; |115| 
        SFTA      A,8                   ; |115| 
        SFTA      A,-8                  ; |115| 
        ORM       #2,*(PMST)
        SSBX      FRCT
        SSBX      OVM
        ORM       #2,*(PMST)
        MAS       *(BL), A              ; |115| 
        SFTL      A,#-16,A              ; |115| 
        STL       A,*AR6                ; |115| 
	.line	36
        B         L2                    ; |117| 
        ; branch occurs ; |117| 
L1:    
	.line	12
        ST        #0,*AR7               ; |93| 
	.line	13
        ST        #0,*AR6               ; |94| 
L2:    
	.line	37
        ANDM      #-833,*(ST1)
        ANDM      #-4,*(PMST)
        FRAME     #2
        POPM      AR7
        POPM      AR6
        POPM      AR1
        RET
        ; return occurs
	.endfunc	118,000018400h,5



	.sect	".text"
	.global	_Inv_sqrt
	.sym	_Inv_sqrt,_Inv_sqrt, 37, 2, 0
	.func	146

;***************************************************************
;* FUNCTION DEF: _Inv_sqrt                                     *
;***************************************************************

;***************************************************************
;*                                                             *
;* Using -g (debug) with optimization (-o3) may disable key op *
;*                                                             *
;***************************************************************
_Inv_sqrt:
	.line	4
;* A     assigned to _L_x
	.sym	_L_x,0, 5, 17, 32
	.sym	_L_x,2, 5, 1, 32
;* AR1   assigned to _exp
	.sym	_exp,10, 3, 4, 16
;* AR6   assigned to _i
	.sym	_i,15, 3, 4, 16
;* B     assigned to _a
	.sym	_a,6, 3, 4, 16
;* A     assigned to _L_y
	.sym	_L_y,0, 5, 4, 32
;* AR2   assigned to C$2
;* AR3   assigned to C$1
        PSHM      AR1
        PSHM      AR6
        FRAME     #-5
        NOP
        DST       A,*SP(2)              ; |149| 
	.line	8
        RSBX      OVM
        SSBX      SXM
        SFTA      A,8                   ; |153| 
        SFTA      A,-8                  ; |153| 
        BC        L3,AGT                ; |153| 
        ; branch occurs ; |153| 
        LD        #16383,16,A           ; |153| 
        BD        L5                    ; |153| 
        OR        #65535,A,A            ; |153| 
        ; branch occurs ; |153| 
L3:    
	.line	10
        DLD       *SP(2),A
        EXP       A                     ; |155| 
        NOP
        MVMD      T,AR1
	.line	11
        RSBX      FRCT
        MVKD      *(AR1),*SP(0)
        DLD       *SP(2),A              ; |156| 
        CALL      #_L_shl               ; |156| 
        ; call occurs [#_L_shl] ; |156| 
        DST       A,*SP(2)              ; |156| 
	.line	13
        RSBX      OVM
        SSBX      SXM
        LD        #30,16,A              ; |158| 
        SSBX      OVM
        SUB       *(AR1),16,A,A         ; |158| 
        SFTA      A,-16,A               ; |158| 
        STLM      A,AR1
	.line	14
        BITF      *(AR1),#1             ; |159| 
        BC        L4,TC                 ; |159| 
        ; branch occurs ; |159| 
	.line	15
        RSBX      OVM
        ST        #1,*SP(0)             ; |160| 
        RSBX      FRCT
        DLD       *SP(2),A              ; |160| 
        CALL      #_L_shr               ; |160| 
        ; call occurs [#_L_shr] ; |160| 
        DST       A,*SP(2)              ; |160| 
L4:    
	.line	17
        RSBX      FRCT
        RSBX      OVM
        ST        #1,*SP(0)             ; |162| 
        CALLD     #_shr                 ; |162| 
        NOP
        LDM       AR1,A
        ; call occurs [#_shr] ; |162| 
        STLM      A,AR1
	.line	18
        RSBX      OVM
        SSBX      SXM
        LD        *(AR1),16,A           ; |163| 
        SSBX      OVM
        NOP
        ADD       #1,16,A,A             ; |163| 
        SFTA      A,-16,A               ; |163| 
        STLM      A,AR1
	.line	20
        RSBX      OVM
        ST        #9,*SP(0)             ; |165| 
        RSBX      FRCT
        DLD       *SP(2),A              ; |165| 
        CALL      #_L_shr               ; |165| 
        ; call occurs [#_L_shr] ; |165| 
        DST       A,*SP(2)              ; |165| 
	.line	21
        SFTL      A,#-16,A              ; |166| 
        STLM      A,AR6
	.line	22
        RSBX      OVM
        ST        #1,*SP(0)             ; |167| 
        RSBX      FRCT
        DLD       *SP(2),A              ; |167| 
        CALL      #_L_shr               ; |167| 
        ; call occurs [#_L_shr] ; |167| 
        DST       A,*SP(2)              ; |167| 
	.line	23
        LD        #32767,B
        AND       A,B                   ; |168| 
	.line	26
        RSBX      OVM
        SSBX      SXM
        LD        *(AR6),16,A           ; |171| 
        SSBX      OVM
        NOP
        SUB       #16,16,A,A            ; |171| 
        SFTA      A,-16,A               ; |171| 
	.line	32
        RSBX      OVM
        NOP
        ADD       #_tabsqr,A,A          ; |177| 
        STLM      A,AR2
        NOP
        NOP
        MVDK      *AR2,*(AR3)
        LD        *(AR3),16,A           ; |177| 
        SSBX      OVM
        MVKD      *(AR1),*SP(0)
        SUB       *AR2(1),16,A,A        ; |177| 
        STH       A,*(T)
        RSBX      OVM
        LD        *(AR3),A              ; |177| 
        SFTL      A,#15,A               ; |177| 
        SFTL      A,#1,A                ; |177| 
        SFTA      A,8                   ; |177| 
        SFTA      A,-8                  ; |177| 
        ORM       #2,*(PMST)
        SSBX      FRCT
        SSBX      OVM
        ORM       #2,*(PMST)
        MAS       *(BL), A              ; |177| 
        RSBX      FRCT
        RSBX      OVM
        NOP
        CALL      #_L_shr               ; |177| 
        ; call occurs [#_L_shr] ; |177| 
	.line	34
L5:    
	.line	35
        ANDM      #-833,*(ST1)          ; |179| 
        ANDM      #-4,*(PMST)           ; |179| 
        FRAME     #5                    ; |179| 
        POPM      AR6                   ; |179| 
        POPM      AR1                   ; |179| 
        RET       ; |179| 
        ; return occurs ; |179| 
	.endfunc	180,000008400h,7


;***************************************************************
;* UNDEFINED EXTERNAL REFERENCES                               *
;***************************************************************
	.global	_L_shl
	.global	_L_shr
	.global	_shr
	.global	_L_crshft_r
	.global	_tabpow
	.global	_tablog
	.global	_tabsqr

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