📄 spreproc.asm
字号:
*****************************************************************************
** Description: spreproc() in file.c **
** **
** Inputs **
** _buffer1---Word16 gamma1[] **
** _buffer1+2---Word16 gamma2[] **
** xar1---Word16 *A
** xar7---Word16 *Aq
** _buffer1+4---Word16 speech[]
** _buffer1+6---Word16 mem_err[]
** _buffer1+8---Word16 mem_w0[]
** _buffer1+10---Word16 zero[]
**
**
** **
** Outputs:
** xar0---Word16 ai_zero[]
** xar2---Word16 exc[] **
** xar3---Word16 h1[]
** xar4---Word16 xn[]
** xar5---Word16 res2[]
** xar6---Word16 error[]
** **
** Temporary:
**
** **
** Return value : **
** **
** Attribute : Cycles: 84705 Pm:73 **
** Modified Registers: xar0-xar7,acc,p,t **
** **
** Programmer : Zhang Xin **
*******************************************************
.global _spreproc
.ref _buffer1
.ref _buffer2
.ref _buffer3
.ref L_SUBFR
.ref _Syn_filt
.ref _Weight_Ai
.ref _copy
.ref _residu
_spreproc:
addb sp,#24
movl *-sp[2],xar0
movl *-sp[4],xar1
movl *-sp[6],xar2
movl *-sp[8],xar3
movl *-sp[10],xar4
movl *-sp[12],xar5
movl *-sp[14],xar6
movl *-sp[16],xar7
movl xar3,#_buffer1+10
movl xar3,*xar3 ;zero的首址
movl *-sp[18],xar3
movl xar7,#_buffer1
movl xar7,*xar7 ;g1
movl xar2,#_buffer2 ;Ap1
LCR _Weight_Ai
movl xar1,*-sp[4]
movl *-sp[20],xar2 ;保存Ap1的首址
movl xar7,#_buffer1+2
movl xar7,*xar7 ;gamma2
movl xar2,#_buffer2+20 ;Ap2
LCR _Weight_Ai
movl *-sp[22],xar2 ;保存Ap2的首址
movl xar2,*-sp[20]
mov ar3,#10
movl xar0,*-sp[2]
_Loop_81:
mov al,*xar2++
mov *xar0++,al ;ai_zero[i] = Ap1[i];
banz _Loop_81,ar3--
movl xar7,*-sp[16]
movl xar1,*-sp[2] ;ai_zero
movl xar2,*-sp[8] ;h1
mov ar0,#L_SUBFR
movl xar3,*-sp[18] ;zero
mov ar4,#0
LCR _Syn_filt
movl xar7,*-sp[22] ;Ap2
movl xar1,@xar2 ;h1
mov ar0,#L_SUBFR
mov ar4,#0
LCR _Syn_filt
movl xar4,#_buffer1+4
movl xar4,*xar4 ;speech
movl xar7,*-sp[16] ;Aq
movl xar3,*-sp[12] ;res2
mov ar1,#L_SUBFR
LCR _residu
movl xar2,*-sp[12] ;res2
movl xar3,*-sp[6] ;exc
mov ar1,#L_SUBFR
LCR _copy
movl xar7,*-sp[16] ;Aq
movl xar1,*-sp[6] ;exc
movl xar2,*-sp[14] ;error
mov ar0,#L_SUBFR
movl xar3,#_buffer1+6
movl xar3,*xar3 ;mem_err
mov ar4,#0
LCR _Syn_filt
movl xar7,*-sp[20] ;Ap1
movl xar4,*-sp[14] ;error
movl xar3,*-sp[10] ;xn
mov ar1,#L_SUBFR
LCR _residu
movl xar7,*-sp[22] ;Ap2
movl xar1,*-sp[10] ;xn
movl xar2,@xar1 ;xn
mov ar0,#L_SUBFR
movl xar3,#_buffer1+8
movl xar3,*xar3
mov ar4,#0 ;mem_w0
LCR _Syn_filt
subb sp,#24
LRETR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -