📄 dec_gain.asm
字号:
*****************************************************************************
** Description: Dec_gain() in dec_gain.c **
** **
** Inputs **
** **
** al ---Word16 index **
** xar7---Word16 code[] **
** **
** Outputs: **
** ar5---Word16 gain_pit **
** ar6---Word16 gain_cod **
** **
** **
** Return value : none **
** **
** Attribute : Cycles:1938 Pm: 33 **
** Modified Registers: all **
** **
** Programmer : Qi Ying **
*****************************************************************************
.global _Dec_gain
.global table_gain_lowrates
.ref _dec_gc_pred
.ref _dec_gc_pred_update
.ref _pow2
.ref dec_past_qua_en
_Dec_gain:
addb sp, #16
mov ah, #0
lsl al, #2 ;al=index
movl xar0, #table_gain_lowrates
addl xar0, acc ;xar0=p
movz ar5, *+xar0[0] ;*gain_pit = *p++
nop
mov al, *+xar0[1]
mov *-sp[2], al ;*-sp[2]=g_code
mov al, *+xar0[2]
mov *-sp[3], al ;*-sp[3]=qua_ener_MR122
mov al, *+xar0[3]
mov *-sp[4], al ;*-sp[4]=qua_ener
movl *-sp[6], xar3 ;*-sp[6]=dn_sign
mov *-sp[8], ar5 ;*-sp[8]=gain_pit
LCR _dec_gc_pred ;input:xar7=code[]
;output:ah=exp
; al=frac
mov ar0, #10
sub ar0, ah
mov *-sp[12], ar0 ;*-sp[12]=10-exp
mov ar2, #14
mov ar3, al ;input:ar2=14,ar3=frac
LCR _pow2 ;output:xar1
;ar1=gcode0
mov T, *-sp[2] ;g_code
mpy acc, T, ar1
lsl acc, #1 ;L_tmp
mov T, *-sp[12] ;10-exp
asrl acc, T
mov *-sp[10], ah ;*-sp[10]=gain_cod
mov ar6, *-sp[3]
mov ar7, *-sp[4]
movl xar5,#dec_past_qua_en
LCR _dec_gc_pred_update ;input:ar6=qua_ener_MR122
; ar7=qua_ener
movz ar5, *-sp[8] ;gain_pit
mov ar6, *-sp[10] ;gain_cod
subb sp, #16
LRETR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -