📄 lspgetq_asm.asm
字号:
L19:
;** 38 ----------------------- Lsp_expand_1_2(&buf, 10);
;** 39 ----------------------- Lsp_expand_1_2(&buf, 5);
;** 41 ----------------------- Lsp_prev_compose(&buf, lspq, fg, freq_prev, fg_sum);
;** 43 ----------------------- Lsp_prev_update(&buf, freq_prev);
;** 45 ----------------------- Lsp_stability(lspq);
;** 47 ----------------------- return;
.line 23
;----------------------------------------------------------------------
; 38 | Lsp_expand_1_2(buf, GAP1);
;----------------------------------------------------------------------
;;RSBX OVM
ST #10,*SP(0) ; |38|
LDM SP,A
CALLD #_Lsp_expand_1_2 ; |38|
ADD #4,A
; call occurs [#_Lsp_expand_1_2] ; |38|
.line 24
;----------------------------------------------------------------------
; 39 | Lsp_expand_1_2(buf, GAP2);
;----------------------------------------------------------------------
;;RSBX FRCT
ST #5,*SP(0) ; |39|
;;RSBX OVM
LDM SP,A
CALLD #_Lsp_expand_1_2 ; |39|
ADD #4,A
; call occurs [#_Lsp_expand_1_2] ; |39|
.line 26
;----------------------------------------------------------------------
; 41 | Lsp_prev_compose(buf, lspq, fg, freq_prev, fg_sum);
;----------------------------------------------------------------------
MVKD *(AR6),*SP(0)
MVKD *(AR7),*SP(1)
RSBX FRCT
MVKD *(AR1),*SP(2)
LD *SP(14),A
STL A,*SP(3)
;;RSBX OVM
LDM SP,A
CALLD #_Lsp_prev_compose ; |41|
ADD #4,A
; call occurs [#_Lsp_prev_compose] ; |41|
.line 28
;----------------------------------------------------------------------
; 43 | Lsp_prev_update(buf, freq_prev);
;----------------------------------------------------------------------
;;RSBX OVM
;;RSBX FRCT
MVKD *(AR1),*SP(0)
LDM SP,A
CALLD #_Lsp_prev_update ; |43|
ADD #4,A
; call occurs [#_Lsp_prev_update] ; |43|
.line 30
;----------------------------------------------------------------------
; 45 | Lsp_stability( lspq );
;----------------------------------------------------------------------
;;RSBX OVM
;;RSBX FRCT
;;NOP
CALLD #_Lsp_stability ; |45|
NOP
LDM AR6,A
; call occurs [#_Lsp_stability] ; |45|
.line 32
;----------------------------------------------------------------------
; 47 | return;
;----------------------------------------------------------------------
.line 33
ANDM #-833,*(ST1)
ANDM #-4,*(PMST)
FRAME #16
POPM AR7
POPM AR6
POPM AR1
RET
; return occurs
;; .endfunc 48,000018400h,19
.sect ".text"
.global _Lsp_expand_2
;----------------------------------------------------------------------
; 72 | void Lsp_expand_2(
; 73 | Word16 buf[], /* (i/o) Q13 : LSP vectors */
; 74 | Word16 gap /* (i) Q13 : gap */
; 75 | )
;----------------------------------------------------------------------
;***************************************************************
;* FUNCTION DEF: _Lsp_expand_2 *
;***************************************************************
;***************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key op *
;* *
;***************************************************************
_Lsp_expand_2:
.line 5
;* A assigned to _buf
.sym _buf,0, 19, 17, 16
.sym _gap,6, 3, 9, 16
;* AR1 assigned to U$5
.sym U$5,10, 19, 4, 16
;* AR6 assigned to L$1
.sym L$1,15, 4, 4, 16
;* A assigned to _tmp
.sym _tmp,0, 3, 4, 16
;* AR7 assigned to _gap
.sym _gap,16, 3, 4, 16
;* A assigned to _buf
.sym _buf,0, 19, 4, 16
;** ----------------------- #pragma MUST_ITERATE(5, 5, 5)
;** ----------------------- #pragma LOOP_FLAGS(5120u)
;** ----------------------- U$5 = &buf[4];
;** ----------------------- L$1 = 5;
PSHM AR1
PSHM AR6
PSHM AR7
FRAME #-2
;----------------------------------------------------------------------
; 77 | Word16 j, tmp;
; 78 | Word16 diff; /* Q13 */
; 80 | for ( j = NC ; j < M ; j++ ) {
; 81 | diff = sub( buf[j-1], buf[j] );
;----------------------------------------------------------------------
;;RSBX OVM
;;NOP
ADD #4,A,A
STLM A,AR1
;;NOP
STM #5,AR6
MVDK *SP(6),*(AR7)
L20:
;** -----------------------g2:
;** 82 ----------------------- if ( (tmp = crshft(_sadd(_ssub(*U$5, U$5[1]), gap), 1)) <= 0 ) goto g4;
.line 11
;----------------------------------------------------------------------
; 82 | tmp = shr( add( diff, gap), 1 );
; 84 | if ( tmp > 0 ) {
;----------------------------------------------------------------------
;;RSBX OVM
SSBX SXM
;;ST #1,*SP(0) ; |82|
;;RSBX FRCT
LD *AR1,16,A ; |82|
SSBX OVM
SUB *AR1(1),16,A,A ; |82|
ADD *(AR7),16,A,A ; |82|
;;RSBX OVM
;;NOP
;;CALLD #_crshft ; |82|
SFTA A,-1;;
NOP
SFTA A,-16,A ; |82|
; call occurs [#_crshft] ; |82|
;;SSBX SXM
LD *(AL),A ; |82|
BC L21,ALEQ ; |82|
; branch occurs ; |82|
;** 85 ----------------------- *U$5 = _ssub(*U$5, tmp);
;** 86 ----------------------- U$5[1] = _sadd(U$5[1], tmp);
.line 14
;----------------------------------------------------------------------
; 85 | buf[j-1] = sub( buf[j-1], tmp );
;----------------------------------------------------------------------
;;RSBX OVM
;;NOP
LD *AR1,16,B ; |85|
;;SSBX OVM
SUB *(AL),16,B,B ; |85|
STH B,*AR1 ; |85|
.line 15
;----------------------------------------------------------------------
; 86 | buf[j] = add( buf[j], tmp );
;----------------------------------------------------------------------
;;RSBX OVM
LD *AR1(1),16,B ; |86|
;;SSBX OVM
ADD *(AL),16,B,A ; |86|
STH A,*AR1(1) ; |86|
L21:
;** -----------------------g4:
;** 88 ----------------------- ++U$5;
;** 88 ----------------------- if ( --L$1 ) goto g2;
;** ----------------------- return;
.line 17
;----------------------------------------------------------------------
; 89 | return;
;----------------------------------------------------------------------
BANZD L20,*+AR6(-1) ; |88|
;;NOP
MAR *AR1+
; branch occurs ; |88|
.line 19
ANDM #-833,*(ST1)
ANDM #-4,*(PMST)
FRAME #2
POPM AR7
POPM AR6
POPM AR1
RET
; return occurs
;;endfunc 90,000018400h,5
.sect ".text"
.global _Lsp_expand_1
;----------------------------------------------------------------------
; 51 | void Lsp_expand_1(
; 52 | Word16 buf[], /* (i/o) Q13 : LSP vectors */
; 53 | Word16 gap /* (i) Q13 : gap */
; 54 | )
;----------------------------------------------------------------------
;***************************************************************
;* FUNCTION DEF: _Lsp_expand_1 *
;***************************************************************
;***************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key op *
;* *
;***************************************************************
_Lsp_expand_1:
.line 5
;* A assigned to _buf
.sym _buf,0, 19, 17, 16
.sym _gap,6, 3, 9, 16
;* AR1 assigned to U$4
.sym U$4,10, 19, 4, 16
;* AR6 assigned to L$1
.sym L$1,15, 4, 4, 16
;* A assigned to _tmp
.sym _tmp,0, 3, 4, 16
;* AR7 assigned to _gap
.sym _gap,16, 3, 4, 16
;* A assigned to _buf
.sym _buf,0, 19, 4, 16
;** ----------------------- #pragma MUST_ITERATE(4, 4, 4)
;** ----------------------- #pragma LOOP_FLAGS(5120u)
;** ----------------------- U$4 = buf;
;** ----------------------- L$1 = 4;
PSHM AR1
PSHM AR6
PSHM AR7
FRAME #-2
;----------------------------------------------------------------------
; 56 | Word16 j, tmp;
; 57 | Word16 diff; /* Q13 */
; 59 | for ( j = 1 ; j < NC ; j++ ) {
; 60 | diff = sub( buf[j-1], buf[j] );
;----------------------------------------------------------------------
STLM A,AR1
;;NOP
STM #4,AR6
MVDK *SP(6),*(AR7)
L22:
;** -----------------------g2:
;** 61 ----------------------- if ( (tmp = crshft(_sadd(_ssub(*U$4, U$4[1]), gap), 1)) <= 0 ) goto g4;
.line 11
;----------------------------------------------------------------------
; 61 | tmp = shr( add( diff, gap), 1 );
; 63 | if ( tmp > 0 ) {
;----------------------------------------------------------------------
;;RSBX OVM
SSBX SXM
;;ST #1,*SP(0) ; |61|
RSBX FRCT
LD *AR1,16,A ; |61|
SSBX OVM
SUB *AR1(1),16,A,A ; |61|
ADD *(AR7),16,A,A ; |61|
;;RSBX OVM
;;NOP
;;CALLD #_crshft ; |61|
SFTA A,-1;;WLY
NOP
SFTA A,-16,A ; |61|
; call occurs [#_crshft] ; |61|
;;SSBX SXM
LD *(AL),A ; |61|
BC L23,ALEQ ; |61|
; branch occurs ; |61|
;** 64 ----------------------- *U$4 = _ssub(*U$4, tmp);
;** 65 ----------------------- U$4[1] = _sadd(U$4[1], tmp);
.line 14
;----------------------------------------------------------------------
; 64 | buf[j-1] = sub( buf[j-1], tmp );
;----------------------------------------------------------------------
;;RSBX OVM
;;NOP
LD *AR1,16,B ; |64|
;;SSBX OVM
SUB *(AL),16,B,B ; |64|
STH B,*AR1 ; |64|
.line 15
;----------------------------------------------------------------------
; 65 | buf[j] = add( buf[j], tmp );
;----------------------------------------------------------------------
;;RSBX OVM
LD *AR1(1),16,B ; |65|
;;SSBX OVM
ADD *(AL),16,B,A ; |65|
STH A,*AR1(1) ; |65|
L23:
;** -----------------------g4:
;** 67 ----------------------- ++U$4;
;** 67 ----------------------- if ( --L$1 ) goto g2;
;** ----------------------- return;
.line 17
;----------------------------------------------------------------------
; 68 | return;
;----------------------------------------------------------------------
BANZD L22,*+AR6(-1) ; |67|
;; NOP
MAR *AR1+
; branch occurs ; |67|
.line 19
ANDM #-833,*(ST1)
ANDM #-4,*(PMST)
FRAME #2
POPM AR7
POPM AR6
POPM AR1
RET
; return occurs
;; .endfunc 69,000018400h,5
;***************************************************************
;* STRINGS *
;***************************************************************
.sect ".const"
SL1: .string "lsp_stability warning Low ",10,0
SL2: .string "lsp_stability warning High ",10,0
;***************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;***************************************************************
.global _printf
.global _L_shl
.global _Copy
.global _Lsp_stability
.global _Lsp_prev_compose
.global _Lsp_expand_1_2
.global _Lsp_prev_update
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -