📄 lspgetq_asm.asm
字号:
;***************************************************************
;* TMS320C54x C/C++ Codegen PC Version 3.831 *
;* Date/Time created: Wed May 11 09:36:39 2005 *
;***************************************************************
.mmregs
FP .set AR7
; c:\ti\c5400\cgtools\bin\opt500.exe -i20 -q -s -O3 D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI3856_2 D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI3856_5 -w F:/ATA/Code/g729a_v1.4/G729A/Debug
.sect ".text"
.global _Lsp_stability
;----------------------------------------------------------------------
; 191 | void Lsp_stability(
; 192 | Word16 buf[] /* (i/o) Q13 : quantized LSP parameters */
; 193 | )
;----------------------------------------------------------------------
;***************************************************************
;* FUNCTION DEF: _Lsp_stability *
;***************************************************************
;***************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key op *
;* *
;***************************************************************
_Lsp_stability:
;* A assigned to _buf
.sym _buf,0, 19, 17, 16
;* A assigned to _L_diff
.sym _L_diff,0, 5, 4, 32
;* A assigned to _L_diff
.sym _L_diff,0, 5, 4, 32
;* AR1 assigned to U$3
.sym U$3,10, 19, 4, 16
;* AR1 assigned to U$3
.sym U$3,10, 19, 4, 16
;* AR6 assigned to _buf
.sym _buf,15, 19, 4, 16
;* B assigned to _tmp
.sym _tmp,6, 3, 4, 16
;* AR7 assigned to L$2
.sym L$2,16, 4, 4, 16
;* AR7 assigned to L$1
.sym L$1,16, 4, 4, 16
;** ----------------------- #pragma MUST_ITERATE(9, 9, 9)
;** ----------------------- #pragma LOOP_FLAGS(5120u)
;** ----------------------- U$3 = buf;
;** ----------------------- L$1 = 9;
PSHM AR1
PSHM AR6
PSHM AR7
FRAME #-2
;----------------------------------------------------------------------
; 195 | Word16 j;
; 196 | Word16 tmp;
; 197 | Word32 L_diff;
; 198 | Word32 L_acc, L_accb;
; 200 | for(j=0; j<M-1; j++) {
; 201 | L_acc = L_deposit_l( buf[j+1] );
; 202 | L_accb = L_deposit_l( buf[j] );
;----------------------------------------------------------------------
STLM A,AR6
NOP
NOP
MVMM AR6,AR1
STM #9,AR7
L1:
;** -----------------------g2:
;** 203 ----------------------- if ( (L_diff = L_sub((long)U$3[1], (long)*U$3)) >= 0L ) goto g4;
;----------------------------------------------------------------------
; 203 | L_diff = L_sub( L_acc, L_accb );
; 205 | if( L_diff < 0L ) {
;----------------------------------------------------------------------
;;RSBX OVM
SSBX OVM;;WLY
SSBX SXM
RSBX FRCT
;;LD *AR1,A ; |203|
;;DST A,*SP(0) ; |203|
LD *AR1,B;;WLY
LD *AR1(1),A ; |203|
;;CALL #_L_sub ; |203|
NOP;;
SUB B,A;;WLY
; call occurs [#_L_sub] ; |203|
;;RSBX OVM
;;SSBX SXM
;;SFTA A,8 ; |203|
;;SFTA A,-8 ; |203|
BC L2,AGEQ ; |203|
; branch occurs ; |203|
;** 207 ----------------------- tmp = U$3[1];
;** 208 ----------------------- U$3[1] = *U$3;
;** 209 ----------------------- *U$3 = tmp;
.line 17
;----------------------------------------------------------------------
; 207 | tmp = buf[j+1];
;----------------------------------------------------------------------
LD *AR1(1),B
.line 18
;----------------------------------------------------------------------
; 208 | buf[j+1] = buf[j];
;----------------------------------------------------------------------
LD *AR1,A
STL A,*AR1(1)
.line 19
;----------------------------------------------------------------------
; 209 | buf[j] = tmp;
;----------------------------------------------------------------------
STL B,*AR1
L2:
;** -----------------------g4:
;** 211 ----------------------- ++U$3;
;** 211 ----------------------- if ( --L$1 ) goto g2;
.line 21
BANZD L1,*+AR7(-1) ; |211|
NOP
MAR *AR1+
; branch occurs ; |211|
;** 214 ----------------------- if ( *buf >= 40 ) goto g7;
.line 24
;----------------------------------------------------------------------
; 214 | if( sub(buf[0], L_LIMIT) <0 ) {
;----------------------------------------------------------------------
LD #40,A
SUB *AR6,A ; |214|
BC L3,ALEQ ; |214|
; branch occurs ; |214|
;** 215 ----------------------- *buf = 40;
;** 216 ----------------------- printf((char *)"lsp_stability warning Low \n");
.line 25
;----------------------------------------------------------------------
; 215 | buf[0] = L_LIMIT;
;----------------------------------------------------------------------
ST #40,*AR6 ; |215|
.line 26
;----------------------------------------------------------------------
; 216 | printf("lsp_stability warning Low \n");
; 218 | for(j=0; j<M-1; j++) {
; 219 | L_acc = L_deposit_l( buf[j+1] );
; 220 | L_accb = L_deposit_l( buf[j] );
;----------------------------------------------------------------------
RSBX FRCT
ST #SL1,*SP(0) ; |216|
CALL #_printf ; |216|
; call occurs [#_printf] ; |216|
L3:
;** -----------------------g7:
;** ----------------------- #pragma MUST_ITERATE(9, 9, 9)
;** ----------------------- #pragma LOOP_FLAGS(5120u)
;** ----------------------- U$3 = buf;
;** ----------------------- L$2 = 9;
NOP
NOP
NOP
NOP
STM #9,AR7
MVMM AR6,AR1
L4:
;** -----------------------g9:
;** 221 ----------------------- L_diff = L_sub((long)U$3[1], (long)*U$3);
;** 223 ----------------------- if ( L_sub(L_diff, 321L) >= 0L ) goto g11;
.line 31
;----------------------------------------------------------------------
; 221 | L_diff = L_sub( L_acc, L_accb );
;----------------------------------------------------------------------
;;RSBX OVM
;;SSBX SXM
;;RSBX FRCT
;;LD *AR1,A ; |221|
;;DST A,*SP(0) ; |221|
LD *AR1,B;;WLY
LD *AR1(1),A ; |221|
;;CALL #_L_sub ; |221|
NOP;;
SUB B,A;;WLY
; call occurs [#_L_sub] ; |221|
.line 33
;----------------------------------------------------------------------
; 223 | if( L_sub(L_diff, GAP3)<0L ) {
;----------------------------------------------------------------------
LD #321,B
;;RSBX FRCT
;;RSBX OVM
;;DST B,*SP(0) ; |223|
;;CALL #_L_sub ; |223|
; call occurs [#_L_sub] ; |223|
SUB B,A;;WLY
;;RSBX OVM
;;SSBX SXM
;;SFTA A,8 ; |223|
;;SFTA A,-8 ; |223|
BC L5,AGEQ ; |223|
; branch occurs ; |223|
;** 224 ----------------------- U$3[1] = _sadd(*U$3, 321);
.line 34
;----------------------------------------------------------------------
; 224 | buf[j+1] = add( buf[j], GAP3 );
;----------------------------------------------------------------------
LD *AR1,16,A ; |224|
;;SSBX OVM
NOP
ADD #321,16,A,A ; |224|
STH A,*AR1(1) ; |224|
L5:
;** -----------------------g11:
;** 226 ----------------------- ++U$3;
;** 226 ----------------------- if ( --L$2 ) goto g9;
.line 36
BANZD L4,*+AR7(-1) ; |226|
NOP
MAR *AR1+
; branch occurs ; |226|
;** 228 ----------------------- if ( buf[9] < 25682 ) goto g14;
.line 38
;----------------------------------------------------------------------
; 228 | if( sub(buf[M-1],M_LIMIT)>0 ) {
;----------------------------------------------------------------------
;;RSBX OVM
LD #25682,A
SUB *AR6(9),A ; |228|
BC L6,AGT ; |228|
; branch occurs ; |228|
;** 229 ----------------------- buf[9] = 25681;
;** 230 ----------------------- printf((char *)"lsp_stability warning High \n");
;** -----------------------g14:
;** ----------------------- return;
.line 39
;----------------------------------------------------------------------
; 229 | buf[M-1] = M_LIMIT;
;----------------------------------------------------------------------
ST #25681,*AR6(9) ; |229|
.line 40
;----------------------------------------------------------------------
; 230 | printf("lsp_stability warning High \n");
; 232 | return;
;----------------------------------------------------------------------
RSBX FRCT
ST #SL2,*SP(0) ; |230|
CALL #_printf ; |230|
; call occurs [#_printf] ; |230|
L6:
.line 43
ANDM #-833,*(ST1)
ANDM #-4,*(PMST)
FRAME #2
POPM AR7
POPM AR6
POPM AR1
RET
; return occurs
;; .endfunc 233,000018400h,5
.sect ".text"
.global _Lsp_prev_update
;----------------------------------------------------------------------
; 177 | void Lsp_prev_update(
; 178 | Word16 lsp_ele[M], /* (i) Q13 : LSP vectors */
; 179 | Word16 freq_prev[MA_NP][M] /* (i/o) Q13 : previous LSP vectors */
; 180 | )
;----------------------------------------------------------------------
;***************************************************************
;* FUNCTION DEF: _Lsp_prev_update *
;***************************************************************
;***************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key op *
;* *
;***************************************************************
_Lsp_prev_update:
.line 5
;* A assigned to _lsp_ele
.sym _lsp_ele,0, 19, 17, 16
.sym _freq_prev,8, 211, 9, 16,, 10
.sym U$6,3, 20, 1, 16
;* AR1 assigned to U$8
.sym U$8,10, 20, 4, 16
;* AR6 assigned to L$1
.sym L$1,15, 4, 4, 16
.sym _freq_prev,2, 211, 1, 16,, 10
;* AR7 assigned to _lsp_ele
.sym _lsp_ele,16, 19, 4, 16
;** ----------------------- #pragma MUST_ITERATE(3, 3, 3)
;** ----------------------- #pragma LOOP_FLAGS(5120u)
;** ----------------------- U$6 = &freq_prev[30];
;** ----------------------- U$8 = &freq_prev[20];
;** ----------------------- L$1 = 3;
PSHM AR1
PSHM AR6
PSHM AR7
FRAME #-4
;----------------------------------------------------------------------
; 182 | Word16 k;
; 184 | for ( k = MA_NP-1 ; k > 0 ; k-- )
;----------------------------------------------------------------------
STLM A,AR7
NOP
STM #3,AR6
LD *SP(8),A
STL A,*SP(2)
ADD #30,A,A
STL A,*SP(3)
LD *SP(2),A
ADD #20,A,A
STLM A,AR1
SSBX SXM;;wly
L7:
;** -----------------------g2:
;** 185 ----------------------- Copy(U$8, U$6, 10);
;** 185 ----------------------- U$6 -= 10;
;** 185 ----------------------- U$8 -= 10;
;** 185 ----------------------- if ( --L$1 ) goto g2;
.line 9
;----------------------------------------------------------------------
; 185 | Copy(freq_prev[k-1], freq_prev[k], M);
;----------------------------------------------------------------------
LD *SP(3),A
STL A,*SP(0)
ST #10,*SP(1) ; |185|
CALLD #_Copy ; |185|
NOP
LDM AR1,A
; call occurs [#_Copy] ; |185|
MAR *+AR1(#-10)
;;SSBX SXM
LD *SP(3),A
ADD #-10,A
BANZD L7,*+AR6(-1) ; |185|
NOP
STL A,*SP(3)
; branch occurs ; |185|
;** 187 ----------------------- Copy(lsp_ele, (int * const)freq_prev, 10);
;** 188 ----------------------- return;
.line 11
;----------------------------------------------------------------------
; 187 | Copy(lsp_ele, freq_prev[0], M);
;----------------------------------------------------------------------
LD *SP(2),A
STL A,*SP(0)
ST #10,*SP(1) ; |187|
CALLD #_Copy ; |187|
NOP
LDM AR7,A
; call occurs [#_Copy] ; |187|
.line 12
;----------------------------------------------------------------------
; 188 | return;
;----------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -