⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_mul.asm

📁 TI C54写的G729代码,视线8kbps高质量语音编码,汇编优化
💻 ASM
字号:
;================================================================
;  File Name
;  ----------
;  TEST_MUL.ASM
;
;  Brief Description of the Code:
;  ------------------------------
;  Test for multiple
;
;  Ref
;  ------
;  PITCH_A.C
;================================================================
;  Str_Lag_max        .struct
;  ptr_signal         .word   1
;  lag_max            .word   1
;  lag_min            .word   1
;  ptr_cor_max        .word   1
;  Str_Lag_max_Len    .endstruct
;----------------------------------------------------------------
;  Buffer : Addr_lag_max_buf[2] at even boundary
;----------------------------------------------------------------
;  Output : AR1 = p_max
;  Modified Registers: AR4, AR5
;----------------------------------------------------------------
		.mmregs
		.include ../include/const.h
		.include ../include/struct.h
		.include ../include/ld8amem.h

        .def     test_multiple

param_lag_max   .tag     Str_Lag_max

        .asg     "Addr_pitch_ol_buf",        scal_sig
        .asg     "scal_sig+PIT_MAX+L_FRAME", max3
        .asg     "max3+1",                   max2
        .asg     "max2+1",                   max1
        .asg     "max1+1",                   p_max3
        .asg     "p_max3+1",                 p_max2
        .asg     "p_max2+1",                 p_max1

;====================
;Test for multiple
;====================
test_multiple:



; if(abs(T2*2-T3)<5) max2 += max3 * 0.25

        LD      #param_lag_max, DP
        ST      #max2, param_lag_max.ptr_cor_max
        MVDM    param_lag_max.ptr_cor_max, AR5


        LD      *(p_max2), 1, A
        SUB     *(p_max3), A
        NOP
        SAT     A
        XC      1, ALT
                NEG     A         ; A = abs(3*p_max2-p_max3)
        SUB     #5, A
        LD      *(max2), 16, B
        XC      2, ALT
                MAC     *(max3), #8192, B
        XC      2, ALT
                STL     B, -16, *AR5


; if(abs(T2*3-T3)<7) max2 += max3 * 0.25

        LD      *(p_max2), 1, A
        ADD     *(p_max2), A
        SUB     *(p_max3), A
        NOP
        SAT     A
        XC      1, ALT
                NEG     A         ; A = abs(3*p_max2-p_max3)

        SUB     #7, A
        SAT     A
        NOP
        LD      *(max2), 16, B
        XC      2, ALT
                MAC     *(max3), #8192, B
        XC      2, ALT
                STL     B, -16, *AR5


; if(abs(T1*2-T2)<5) max1 += max2 * 0.20

        ST      #max1, param_lag_max.ptr_cor_max
        MVDM    param_lag_max.ptr_cor_max, AR5


        LD      *(p_max1), 1, A
        SUB     *(p_max2), A
        NOP
        SAT     A
        XC      1, ALT
                NEG     A            ; A = abs(2*p_max1-p_max2)   
        SUB     #5, A
        SAT     A
        LD      *(max1), 16, B
        XC      2, ALT
                MAC     *(max2), #6554, B
        XC      2, ALT
                STL     B, -16, *AR5


; if(abs(T1*3-T2)<7) max1 += max2 * 0.20

        LD      *(p_max1), 1, A
        ADD     *(p_max1), A
        SUB     *(p_max2), A
        NOP
        SAT     A
        XC      1, ALT
                NEG     A             ; A = abs(3*p_max1-p_max2)
        SUB     #7, A
        SAT     A
        LD      *(max1), 16, B
        XC      2, ALT
                MAC     *(max2), #6554, B
        XC      2, ALT
                STL     B, -16, *AR5

        RET
        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -