📄 scale_horz_h.asm
字号:
.asg A23, A_ptr_hh ;
.asg B24, B_ptr_hh ;
.asg A9, A_line0_x0 ;
.asg B9, B_line0_x1 ;
.asg A18, A_ka ;
.asg B17, B_kb ;
.asg A17, A_jump10 ;
.asg A19, A_kbka ;
.asg A22, A_patch0 ;
.asg A20, A_y0 ;
.asg B20, B_y1 ;
.asg B21, B_line0_y ;
.asg A7, A_round ;
.asg A0, A_taps ;
.asg A5, A_l_hh ;
.asg B0, B_f_cnt ;
.asg A3, A_patch ;
.asg B7, B_hh ;
.asg B5, B_max_filt ;
.asg B22, B_i ;
.asg A27, A_h03h02 ;
.asg A26, A_h01h00 ;
.asg B27, B_h13h12 ;
.asg B26, B_h11h10 ;
.asg A17, A_x03x02 ;
.asg A16, A_x01x00 ;
.asg B17, B_x13x12 ;
.asg B16, B_x11x10 ;
.asg B19, B_one ;
.asg A24, A_p00 ;
.asg A21, A_p01 ;
.asg A18, A_p0 ;
.asg B23, B_p10 ;
.asg B28, B_p11 ;
.asg B18, B_p1 ;
.asg A16, A_t_y0 ;
.asg B19, B_t_y1 ;
.asg B16, B_t_y10 ;
.asg A22, A_k1k0 ;
.asg A28, A_kbka_ ;
.asg B29, B_csr ;
.asg B22, B_csr_no_gie ;
* =========================== PIPE LOOP PROLOG ============================ *
LDW .D1T2 *A_filt_state[0], B_f_cnt ;[ 2,0]
|| MVC .S2 CSR, B_csr ;
ZERO .L1 A_p01 ;
|| AND .S2 B_csr, -2, B_csr_no_gie ;
ZERO .L2 B_p10 ;
|| MVC .S2 B_csr_no_gie, CSR ;
MPY .M2X B_l_hh, A_n_hh, B_max_filt ;[5,0]max_flt=l_hh*n_hh
ZERO .L2 B_p11 ;
|| ZERO .L1 A_p00 ;
MV .L2X A_hh, B_hh ;[ 7,0]
|| SUB .D2 B_max_filt, B_f_cnt, B_filt_no ;[ 7,0]filt_cnt=max_flt
|| MV .D1X B_patch, A_patch ;[ 7,0]patch0=patch
ADDAH .D2 B_hh, B_filt_no, B_hh0 ;[ 8,0]
|| LDW .D1T1 *A_patch[0], A_kbka ;[ 8,0]initial start
|| SHRU .S2 B_filt_no, 1, B_filt_no ;[ 8,0]
ADD .L1 A_patch, 4, A_patch0 ;[ 9,0]patch0=patch
|| ZERO .S1 A_h01h00 ;
ADD .D1X A_patch0, B_filt_no, A_patch0 ;[10,0]
|| ZERO .L2 B_h13h12 ;
|| B .S1 LOOPY + 20 ;
LDW .D1T1 *A_patch0++[1], A_jump10 ;[11,0] first offset
|| B .S1 LOOPY1 + 12 ;
MPY .M2 B_l_hh, B_n_y, B_i ;[12,0]
|| MV .L2X A_plane_y, B_line0_y ;[12,0]line0_y=plane_y
|| MVK .S1 020h, A_round ;[12,0]
|| MVK .D2 1, B_one ;[12,0]
|| MPY .M1X 1, B_l_hh, A_l_hh ;[12,0]
|| B .S2 LOOPY2 + 12 ;
MPYLH .M2X B_one, A_kbka, B_kb ;[13,0]
|| MPY .M1 1, A_kbka, A_ka ;[13,0]
|| B .S1 LOOPY3 + 20 ;
SHRU .S2 B_i, 3, B_i ;[14,0]
|| MPY .M2X 1, A_round, B_y1 ;[14,0] y1 = 1 << 5
|| ADD .L1 12, A_l_hh, A_taps ;[14,0]taps=l_hh
|| ROTL .M1 A_plane_x, 0, A_line0_x0 ;[15,0]line0_x=plane_x
|| B .S1 LOOPY ;
SUB .S2 B_i, 3, B_i ;[15,0]2 + 1
|| ADD .D2 B_hh0, 8, B_ptr_hh ;[15,0]ptr_hh=hh+1
|| MV .L1X B_hh0, A_ptr_hh ;[15,0]ptr_hh = hh
|| MV .L2X A_plane_x, B_line0_x1 ;[15,0]line1_x=plane_x
|| MV .S1 A_round, A_y0 ;[15,0]y0 = 1 << 5
|| LDW .D1T1 *A_patch0++[1], A_jump10 ;[1,1]load next offst
* =========================== PIPE LOOP KERNEL ============================ *
LOOPY:
SHR .S2 B_y1, 6, B_t_y1 ;[18,1]
|| SHR .S1 A_y0, 6, A_t_y0 ;[18,1]
|| SUB .L1 A_taps, 4, A_taps ;[18,1]
|| DOTP2 .M1 A_h01h00, A_x01x00, A_p00 ;[10,3]
|| DOTP2 .M2 B_h13h12, B_x13x12, B_p11 ;[10,3]
|| LDDW .D1T1 *A_ptr_hh++[2], A_h03h02:A_h01h00 ;[ 2,5]h3:0=*ptr_hh++
|| LDDW .D2T2 *B_ptr_hh++[2], B_h13h12:B_h11h10 ;[ 2,5]h3:0=*ptr_hh++
|| SUB .L2 B_f_cnt, 8, B_f_cnt ;[ 2,5]fil_count-=8
LOOPY1:
[!A_taps]MPY .M1 1, A_round, A_y0 ;[19,1]if(!samp)y0=y1=0
||[!A_taps]MPY .M2X 1, A_round, B_y1 ;[19,1]if(!samp)y0=y1=0
|| ADD .S2 B_p10, B_p11, B_p1 ;[15,2]
||[!B_f_cnt]MV .S1X B_hh, A_ptr_hh ;[3,5](!flt_c)p_hh=hh
|| ADD2 .D1 A_jump10, A_kbka, A_kbka ;[3,5]
||[!B_f_cnt]ADD .L2 B_hh, 8, B_ptr_hh ;[3,5](!flt_c)p_hh=hh+4
||[!B_f_cnt]ADD .L1 A_patch, 8, A_patch0 ;[3,5](!flt_c)ptch0=ptch
|| LDNDW .D2T2 *B_line0_x1(B_kb), B_x13x12:B_x11x10;[3,5]x3:0=*(line0_x+kb)
LOOPY2:
PACK2 .L2X B_t_y1, A_t_y0, B_t_y10 ;[20,1]
|| ADD .S1 A_p00, A_p01, A_p0 ;[16,2]
|| DOTP2 .M2 B_h11h10, B_x11x10, B_p10 ;[ 8,4]
|| BDEC .S2 LOOPY, B_i ;[16,2]
|| LDNDW .D1T1 *A_line0_x0(A_ka), A_x03x02:A_x01x00;[4,5]x3:0=*(line0_x+ka)
|| MPY .M1 1, A_kbka, A_ka ;[ 4,5]
|| MVK .D2 1, B_one ;[ 4,5]
LOOPY3:
[!A_taps]MV .L1 A_l_hh, A_taps ;[21,1]taps=l_hh
||[!A_taps]STW.D2T2 B_t_y10, *B_line0_y++[1] ;[21,1]if(!samp)
|| ADD .S1 A_p0, A_y0, A_y0 ;[17,2] *line0_y++=t_y0
|| ADD .S2 B_p1, B_y1, B_y1 ;[17,2]
|| DOTP2 .M1 A_h03h02, A_x03x02, A_p01 ;[9,4]
||[!B_f_cnt]MV .L2 B_max_filt, B_f_cnt ;[5,5]if(!flt_c)
|| MPYLH .M2X B_one, A_kbka, B_kb ;[5,5] flt_cnt=max_flt
|| LDW .D1T1 *A_patch0++[1], A_jump10 ;[1,6]load next offst
* =========================== PIPE LOOP EPILOG ============================ *
SHR .S2 B_y1, 6, B_t_y1 ;[18,3]
|| SHR .S1 A_y0, 6, A_t_y0 ;[18,3]
|| SUB .L1 A_taps, 4, A_taps ;[18,3]
|| DOTP2 .M1 A_h01h00, A_x01x00, A_p00 ;[10,5]
|| DOTP2 .M2 B_h13h12, B_x13x12, B_p11 ;[10,5]
|| LDW .D1T1 *A_patch[0],A_k1k0 ;
[!A_taps]MPY .M1 1, A_round, A_y0 ;[19,3]if(!samp)y0=y1=0;
||[!A_taps]MPY .M2X 1, A_round, B_y1 ;[19,3]if(!samp)y0=y1=0;
|| ADD .S2 B_p10, B_p11, B_p1 ;[15,4]
PACK2 .L2X B_t_y1, A_t_y0, B_t_y10 ;[20,3]
|| ADD .L1 A_p00, A_p01, A_p0 ;[16,4]
|| DOTP2 .M2 B_h11h10, B_x11x10, B_p10 ;[ 8,6]
|| B .S1 PIPE_DOWN ;
|| MVK .S2 0, B_i ;
[!A_taps]MV .L1 A_l_hh, A_taps ;[21,3]taps = l_hh
||[!A_taps]STW.D2T2 B_t_y10, *B_line0_y++[1] ;[21,3]if(!sample)
|| ADD .S1 A_p0, A_y0, A_y0 ;[17,4] *line0_y++=t_y0
|| ADD .S2 B_p1, B_y1, B_y1 ;[17,4]
|| DOTP2 .M1 A_h03h02, A_x03x02, A_p01 ;[ 9,6]
PIPE_DOWN:
SHR .S2 B_y1, 6, B_t_y1 ;[18,4]
|| SHR .S1 A_y0, 6, A_t_y0 ;[18,4]
|| SUB .L1 A_taps, 4, A_taps ;[18,4]
|| DOTP2 .M1 A_h01h00, A_x01x00, A_p00 ;[10,6]
|| DOTP2 .M2 B_h13h12, B_x13x12, B_p11 ;[10,6]
[!A_taps]MPY .M1 1, A_round, A_y0 ;[19,4]if(!samp)y0=y1=0
||[!A_taps]MPY .M2X 1, A_round, B_y1 ;[19,4]if(!samp)y0=y1=0
|| ADD .S2 B_p10, B_p11, B_p1 ;[15,5]
|| SUB2 .L1 A_kbka, A_k1k0, A_kbka_ ;
PACK2 .L2X B_t_y1, A_t_y0, B_t_y10 ;[20,4]
|| ADD .L1 A_p00, A_p01, A_p0 ;[16,5]
|| BDEC .S2 PIPE_DOWN, B_i ;
|| SHR2 .S1 A_kbka_, 1, A_kbka_ ;
[!A_taps]MV .L1 A_l_hh, A_taps ;[21,4]taps=l_hh
|| ADD .S1 A_p0, A_y0, A_y0 ;[17,5]
|| ADD .S2 B_p1, B_y1, B_y1 ;[17,5]
||[!A_taps]STW.D2T2 B_t_y10, *B_line0_y++[1] ;[21,4](!samp)
; *line0_y++=t_y0
* ========================================================================= *
BNOP .S2 B3, 2 ;return to call
STW .D1T1 A_kbka_, *A_filt_state[1] ;
STW .D1T2 B_f_cnt, *A_filt_state[2] ;
MVC .S2 B_csr, CSR ;
;BRANCH OCCURS
* ========================================================================= *
* End of file: scale_horz_h.asm *
* ------------------------------------------------------------------------- *
* Copyright (c) 2001 Texas Instruments, Incorporated. *
* All Rights Reserved. *
* ========================================================================= *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -