📄 postfilt_asm_nok.asm
字号:
;----------------------------------------------------------------------
RSBX FRCT
ST #11,*SP(0) ; |158|
MVMM SP,AR1
RSBX OVM
MAR *+AR1(#159)
CALLD #_Set_zero ; |158|
NOP
LDM AR1,A
;----------------------------------------------------------------------
; 159 | Syn_filt(Ap4, h, h, L_H, &h[M+1], 0);
;----------------------------------------------------------------------
RSBX OVM
LDM SP,A
ADD #148,A
STL A,*SP(0)
LDM SP,A
ADD #148,A
STL A,*SP(1)
ST #22,*SP(2) ; |159|
MVKD *(AR1),*SP(3)
RSBX FRCT
LDM SP,A
ST #0,*SP(4) ; |159|
CALLD #_Syn_filt ; |159|
ADD #137,A
;----------------------------------------------------------------------
; 163 | L_tmp = L_mult(h[0], h[0]);
;----------------------------------------------------------------------
SSBX FRCT
SSBX OVM
SSBX SXM
ORM #2,*(PMST)
LD *FP(148),T
MPY *FP(148),A ; |163|
MVMM SP,AR1
STM #20,BRC
MAR *+AR1(#149)
RPTB L41-1
L40:
;----------------------------------------------------------------------
; 164 | for (i=1; i<L_H; i++) L_tmp = L_mac(L_tmp, h[i], h[i]);
;----------------------------------------------------------------------
;RSBX OVM
LD *AR1+,B
;SSBX SXM
;SFTA A,8 ; |164|
STLM B,T
;SFTA A,-8 ; |164|
;ORM #2,*(PMST)
;SSBX OVM
;ORM #2,*(PMST)
MAC *(BL), A ; |164|
L41:
;----------------------------------------------------------------------
; 165 | temp1 = extract_h(L_tmp);
;----------------------------------------------------------------------
SFTL A,#-16,A ; |165|
STLM A,AR2
;----------------------------------------------------------------------
; 167 | L_tmp = L_mult(h[0], h[1]);
;----------------------------------------------------------------------
MVMM SP,AR1
MAR *+AR1(#149)
STM #19,BRC
LD *AR1,T
MVMM AR1,AR3
MPY *FP(148),B ; |167|
RPTB L43-1
L42:
;----------------------------------------------------------------------
; 168 | for (i=1; i<L_H-1; i++) L_tmp = L_mac(L_tmp, h[i], h[i+1]);
; 169 | temp2 = extract_h(L_tmp);
;----------------------------------------------------------------------
;RSBX OVM
MVMM AR3,AR4
;SSBX SXM
;SFTA B,8 ; |168|
MAR *AR4+
;SFTA B,-8 ; |168|
;ORM #2,*(PMST)
;SSBX OVM
;ORM #2,*(PMST)
NOP
MAC *AR4, *AR3, B, B ; |168|
MAR *AR3+
L43:
;----------------------------------------------------------------------
; 171 | if(temp2 <= 0) {
; 172 | temp2 = 0;
;----------------------------------------------------------------------
LD B,A ; |171|
;SSBX SXM
SFTL A,#-16,A ; |171|
LD *(AL),A ; |171|
BC L44,AGT ; |171|
BD L45 ; |171|
NOP
LD #0,A
L44:
RSBX OVM
SFTL B,#-16,B ; |171|
LD #26214,16,A ; |171|
STLM B,T
SSBX OVM
NOP
MPYA A ; |171|
RSBX FRCT
RSBX OVM
MVKD *(AR2),*SP(0)
CALLD #_divs ; |171|
NOP
SFTA A,-16,A ; |171|
L45:
;----------------------------------------------------------------------
; 174 | else {
; 175 | temp2 = mult(temp2, MU);
; 176 | temp2 = div_s(temp2, temp1);
; 179 | preemphasis(res2_pst, temp2, L_SUBFR);
;----------------------------------------------------------------------
STL A,*SP(0)
RSBX FRCT
RSBX OVM
LDM SP,A
ST #40,*SP(1) ; |173|
CALLD #_preemphasis ; |173|
ADD #6,A
;----------------------------------------------------------------------
; 183 | Syn_filt(Ap4, res2_pst, &syn_pst[i_subfr], L_SUBFR, mem_syn_pst, 1);
;----------------------------------------------------------------------
RSBX OVM
LDM SP,A
ADD #6,A
STL A,*SP(0)
MVKD *(AR6),*SP(1)
RSBX FRCT
ST #40,*SP(2) ; |183|
LD *FP(174),A
STL A,*SP(3)
LDM SP,A
ST #1,*SP(4) ; |183|
CALLD #_Syn_filt ; |183|
ADD #137,A
;----------------------------------------------------------------------
; 187 | agc(&syn[i_subfr], &syn_pst[i_subfr], L_SUBFR);
;----------------------------------------------------------------------
MVKD *(AR6),*SP(0)
ST #40,*SP(1) ; |187|
RSBX FRCT
RSBX OVM
LD *FP(173),A
CALL #_agc ; |187|
;----------------------------------------------------------------------
; 191 | Copy(&res2[L_SUBFR-PIT_MAX], &res2[-PIT_MAX], PIT_MAX);
;----------------------------------------------------------------------
SSBX SXM
RSBX OVM
LD *(_res2),A
ADD #-143,A
STL A,*SP(0)
ST #143,*SP(1) ; |191|
RSBX FRCT
LD *(_res2),A
CALLD #_Copy ; |191|
SUB #103,A,A ; |191|
;----------------------------------------------------------------------
; 192 | Copy(&scal_res2[L_SUBFR-PIT_MAX], &scal_res2[-PIT_MAX], PIT_MAX);
;----------------------------------------------------------------------
RSBX OVM
SSBX SXM
LD *(_scal_res2),A
ADD #-143,A
STL A,*SP(0)
LD *(_scal_res2),A
RSBX FRCT
ST #143,*SP(1) ; |192|
CALLD #_Copy ; |192|
SUB #103,A,A ; |192|
;----------------------------------------------------------------------
; 194 | Az += MP1;
;----------------------------------------------------------------------
RSBX OVM
LD *FP(172),A
ADD #11,A
STL A,*FP(172)
LD *FP(173),A
MAR *+AR6(#40)
MVDK *FP(175),*(AR1)
MAR *+AR1(#-1)
ADD #40,A
MVKD *(AR1),*FP(175)
BANZD L37,*AR1
STL A,*FP(173)
;----------------------------------------------------------------------
; 199 | Copy(&syn[L_FRAME-M], &syn[-M], M);
;----------------------------------------------------------------------
LD *FP(170),A
SUB #10,A,A ; |199|
RSBX FRCT
STL A,*SP(0)
ST #10,*SP(1) ; |199|
LD *FP(170),A
CALLD #_Copy ; |199|
ADD #70,A,A ; |199|
;----------------------------------------------------------------------
; 203 | Copy(syn_pst, syn, L_FRAME);
;----------------------------------------------------------------------
LD *FP(170),A
RSBX FRCT
RSBX OVM
STL A,*SP(0)
LDM SP,A
ST #80,*SP(1) ; |203|
CALLD #_Copy ; |203|
ADD #46,A
;----------------------------------------------------------------------
; 205 | return;
;----------------------------------------------------------------------
ANDM #-833,*(ST1)
ANDM #-4,*(PMST)
RSBX OVM
ADDM #178,*(SP)
NOP
NOP
POPM FP
POPM AR6
POPM AR1
RET
.sect ".text"
.global _Init_Post_Filter
;----------------------------------------------------------------------
; 59 | void Init_Post_Filter(void)
;----------------------------------------------------------------------
_Init_Post_Filter:
PSHM AR1
PSHM AR6
FRAME #-3
;----------------------------------------------------------------------
; 61 | res2 = res2_buf + PIT_MAX;
;----------------------------------------------------------------------
STM #_res2_buf,AR6
LDM AR6,A
ADD #143,A,A ; |61|
STL A,*(_res2)
;----------------------------------------------------------------------
; 62 | scal_res2 = scal_res2_buf + PIT_MAX;
;----------------------------------------------------------------------
STM #_scal_res2_buf,AR1
LDM AR1,A
ADD #143,A,A ; |62|
STL A,*(_scal_res2)
;----------------------------------------------------------------------
; 64 | Set_zero(mem_syn_pst, M);
;----------------------------------------------------------------------
ST #10,*SP(0) ; |64|
CALLD #_Set_zero ; |64|
LD #_mem_syn_pst,A
;----------------------------------------------------------------------
; 65 | Set_zero(res2_buf, PIT_MAX+L_SUBFR);
;----------------------------------------------------------------------
ST #183,*SP(0) ; |65|
CALLD #_Set_zero ; |65|
NOP
LDM AR6,A
;----------------------------------------------------------------------
; 66 | Set_zero(scal_res2_buf, PIT_MAX+L_SUBFR);
;----------------------------------------------------------------------
ST #183,*SP(0) ; |66|
CALLD #_Set_zero ; |66|
NOP
LDM AR1,A
;----------------------------------------------------------------------
; 68 | return;
;----------------------------------------------------------------------
FRAME #3
POPM AR6
POPM AR1
RET
;***************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;***************************************************************
.global _L_shl
.global _L_shr
.global _Inv_sqrt
.global _Weight_Az
.global _Residu
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -