📄 ac_vld_decode_h.asm
字号:
.asg B0, B_len_cw .asg A1, A_len_val .asg A23, A_temp_ac .asg B0, B_sgn .asg B26, B_Neg_AC .asg A18, A_shift .asg A3, A_level_val .asg B0, B_Neg_s .asg B26, B_run_temp .asg B0, B_st1 .asg B0, B_data_word_cpy_s .asg A3, A_bytes .asg A19, A_num_bytes .asg A1, A_data_sh .asg A0, A_data_sl .asg B26, B_data_sl .asg B7, B_K_63 .asg B3, B_return; ============================================================================; START:; ============================ PIPE LOOP PROLOG ==============================; PROLOG: LMBD .L1 0, A_data_word_val,A_lmbd_val ;[ 1,1] SHRU .S2X A_data_word_val, 26, B_t02_ofs ;[ 2,1]|| CMPLTU .L1 A_lmbd_val, 3, A_st3 ;[ 2,1]|| LDNDW .D *+A_data_pointer(1), A_temp_h:A_temp_l ;[ 2,1] LMBD .L2 0, B_data_word_cpy,B_lmbd_val ;[ 3,1]|| EXTU .S2 B_data_word_cpy, 3, 26, B_ofs ;[ 3,1]|| LDBU .D1T1 *A_data_pointer, A_new_hi ;[ 3,1] CMPGTU .L2 B_lmbd_val, 5, B_st5 ;[ 4,1]|| EXTU .S2 B_data_word_cpy, 5, 25, B_t68_ofs ;[ 4,1]||[ A_st3]SUBAW .D2 B_t02_ofs, 14, B_ofs ;[ 4,1] [ B_st5]MV .D2 B_t68_ofs, B_ofs ;[ 5,1]|| EXTU .S2 B_data_word_cpy, 8, 24, B_t9x_ofs ;[ 5,1]|| CMPGTU .L1 A_lmbd_val, 8, A_st8 ;[ 5,1] [ A_st8]MV .D2 B_t9x_ofs, B_ofs ;[ 6,1] LDBU .D2T1 *+B_shf_tbl[B_ofs], A_len_cw ;[ 7,1]|| SWAP4 .L1 A_temp_l, A_temp_swap_l ;[ 7,1] PACKLH2 .L1 A_temp_swap_l, A_temp_swap_l, A_new_lo ;[ 8,1]|| LDBU .D2T2 *+B_sze_tbl[B_ofs], B_size_val ;[ 8,1] LDBU .D2T2 *+B_run_tbl[B_ofs], B_run_val ;[ 9,1] NOP 2 SUB .D1 A_bit_pos_val, A_len_cw, A_bit_pos_val ;[12,1]|| SHL .S1 A_data_word_val, A_len_cw, A_data_word_val ;[12,1]|| SUB .L1 A_shift_new, A_len_cw, A_shift_new ;[12,1]; ============================ PIPE LOOP KERNEL ==============================LOOP: SUB .L1 A_const_32, A_bit_pos_val, A_bytes ;[13,1]|| SHRU .S1 A_new_hi:A_new_lo, A_shift_new,A_data_sh:A_data_sl;[13,1|| MV .D2X A_len_cw, B_len_cw ;[13,1] ADD .L2 B_run_val, 1, B_run_temp ;[14,1]|| MV .D2X A_data_word_val, B_data_word_cpy_s ;[14,1]|| SUB .L1X A_len_cw, B_size_val, A_len_val ;[14,1]|| SHRU .S1 A_bytes, 3, A_num_bytes ;[14,1]|| OR .D1 A_data_word_val, A_data_sl, A_data_word_val;[14,1]|| AND .S2 B_data_word_cpy, B_EOB_MASK, B_EOB_VAL ;[14,1] ADD .D1 A_used_bytes_val, A_num_bytes, A_used_bytes_val;[15,1]|| ADD .S2 B_num_coeffs, B_run_temp, B_num_coeffs ;[15,1]|| ADD .S1 A_data_pointer, A_num_bytes, A_data_pointer ;[15,1]|| MV .D2X A_data_sl, B_data_sl ;[15,1]|| LMBD .L1 0, A_data_word_val, A_lmbd_val ;[ 1,2] SHL .S1X B_data_word_cpy, A_len_val, A_temp_ac ;[16,1]|| OR .D2 B_data_word_cpy_s,B_data_sl, B_data_word_cpy ;[16,1]|| CMPGT .L2 B_num_coeffs, B_K_62, B_st1 ;[16,1]|| SHRU .S2X A_data_word_val, 26, B_t02_ofs ;[ 2,2]|| CMPLTU .L1 A_lmbd_val, 3, A_st3 ;[ 2,2]|| LDNDW .D *+A_data_pointer(1),A_temp_h:A_temp_l ;[ 2,2] SUB .S1X A_const_32, B_size_val, A_shift ;[17,1]|| LMBD .L2 0, B_data_word_cpy,B_lmbd_val ;[ 3,2]|| EXTU .S2 B_data_word_cpy, 3, 26, B_ofs ;[ 3,2]|| LDBU .D1T1 *A_data_pointer, A_new_hi ;[ 3,2] CMPGTU .L2 B_lmbd_val, 5, B_st5 ;[ 4,2]|| EXTU .S2 B_data_word_cpy, 5,25, B_t68_ofs ;[ 4,2]||[ A_st3]SUBAW .D2 B_t02_ofs, 14, B_ofs ;[ 4,2] CMPEQ .L2X B_EOB_VAL, A_EOB_CODE, B_EOB ;[19,1]|| MPY .M1 A_num_bytes, 8, A_num_bytes ;[19,1]||[ B_st5]MV .D2 B_t68_ofs, B_ofs ;[ 5,2]|| EXTU .S2 B_data_word_cpy, 8,24, B_t9x_ofs ;[ 5,2]|| CMPGTU .L1 A_lmbd_val, 8, A_st8 ;[ 5,2] SHR .S2X A_temp_ac, 31, B_sgn ;[20,1]|| STH .D1T2 B_run_val, *A_run++[2] ;[20,1]||[ B_st1]MV .L2 B_st1, B_EOB ;[20,1]||[ A_st8]MV .D2 B_t9x_ofs, B_ofs ;[ 6,2] [!B_EOB]B .S2 LOOP ;[21,1]|| ADD .L2 B_sgn, 1, B_Neg_AC ;[21,1]|| LDBU .D2T1 *+B_shf_tbl[B_ofs],A_len_cw ;[ 7,2]|| SWAP4 .L1 A_temp_l, A_temp_swap_l ;[ 7,2] SHL .S2 B_Neg_AC, B_size_val, B_Neg_s ;[22,1]|| SHRU .S1 A_temp_ac, A_shift, A_level_val ;[22,1]|| PACKLH2 .L1 A_temp_swap_l, A_temp_swap_l, A_new_lo ;[ 8,2]|| LDBU .D2T2 *+B_sze_tbl[B_ofs],B_size_val ;[ 8,2] ADD .S1X A_level_val, B_Neg_AC, A_level_val ;[23,1]|| LDBU .D2T2 *+B_run_tbl[B_ofs],B_run_val ;[ 9,2] SUB .S1X A_level_val, B_Neg_s, A_level_val ;[24,1]||[B_EOB]STW .D1T1 A_data_pointer, *A_data_ptr ;[ 4,0]||[B_EOB]B .S2 B_return ;[ 4,0] STH .D2T1 A_level_val, *B_level++[2] ;[25,1]|| ADD .D1 A_bit_pos_val, A_num_bytes, A_bit_pos_val ;[25,1]|| ADD .L1 A_shift_new, A_num_bytes, A_shift_new ;[25,1]|| ADD .L2 B_numberval, 1, B_numberval ;[25,1]||[B_EOB]MVK .S2 63, B_K_63 ;[ 5,0] [!B_EOB]SUB .D1 A_bit_pos_val, A_len_cw, A_bit_pos_val ;[12,2]||[!B_EOB]SHL .S1 A_data_word_val, A_len_cw, A_data_word_val;[12,2]||[!B_EOB]SUB .L1 A_shift_new, A_len_cw, A_shift_new ;[12,2]||[B_EOB] STW .D2T1 A_data_word_val, *B_data_word ;[ 5,0]; ============================ PIPE LOOP EPILOG ==============================; EPILOG:; ====================== SYMBOLIC REGISTER ASSIGNMENTS ======================= .asg B22, B_numberval .asg A21, A_bit_pos_val .asg A9, A_used_bytes_val .asg A20, A_data_word_val .asg A16, A_data_pointer .asg B24, B_num_coeffs .asg B6, B_num_of_rles .asg A8, A_bit_position .asg B8, B_used_up_bytes .asg B4, B_data_word .asg A4, A_data_ptr .asg B3, B_return .asg A4, A_fun_ret .asg B7, B_store .asg B7, B_K_63 .asg B5, B_st1; ============================================================================ STW .D2T1 A_used_bytes_val, *B_used_up_bytes ;[ 6,0]|| CMPGT .L2 B_num_coeffs, B_K_63, B_st1 ;[ 6,0] STB .D1T1 A_bit_pos_val, *A_bit_position ;[ 7,0]|| SUB .D2 B_numberval, 1, B_store ;[ 7,0] STB .D2T2 B_store, *B_num_of_rles ;[ 8,0]|| MV .L1X B_st1, A_fun_ret ;[ 8,0] ;==== Branch occurs*==============================================================================**= End of file: ac_vld_decode_h.asm =**==============================================================================** Copyright (C) 1997-1999 Texas Instruments Incorporated. ** All Rights Reserved **==============================================================================*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -