📄 my_convert.asm
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen PC v6.0.8 *
;* Date/Time created: Mon Mar 10 23:01:56 2008 *
;******************************************************************************
.compiler_opts --c64p_l1d_workaround=default --endian=little --hll_source=on --mem_model:code=far --mem_model:data=far --predefine_memory_model_macros --quiet --silicon_version=6400 --symdebug:skeletal
;******************************************************************************
;* GLOBAL FILE PARAMETERS *
;* *
;* Architecture : TMS320C64xx *
;* Optimization : Enabled at level 3 *
;* Optimizing for : Speed *
;* Based on options: -o3, no -ms *
;* Endian : Little *
;* Interrupt Thrshld : Disabled *
;* Data Access Model : Far *
;* Pipelining : Enabled *
;* Speculate Loads : Disabled *
;* Memory Aliases : Presume not aliases (optimistic) *
;* Debug Info : DWARF Debug for Program Analysis w/Optimization *
;* *
;******************************************************************************
.asg A15, FP
.asg B14, DP
.asg B15, SP
.global $bss
$C$DW$CU .dwtag DW_TAG_compile_unit
.dwattr $C$DW$CU, DW_AT_name("my_convert.c")
.dwattr $C$DW$CU, DW_AT_producer("TMS320C6x C/C++ Codegen PC v6.0.8 Copyright (c) 1996-2006 Texas Instruments Incorporated")
.dwattr $C$DW$CU, DW_AT_TI_version(0x01)
$C$DW$1 .dwtag DW_TAG_subprogram, DW_AT_name("DAT_copy")
.dwattr $C$DW$1, DW_AT_TI_symbol_name("_DAT_copy")
.dwattr $C$DW$1, DW_AT_type(*$C$DW$T$19)
.dwattr $C$DW$1, DW_AT_declaration
.dwattr $C$DW$1, DW_AT_external
$C$DW$2 .dwtag DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$3)
$C$DW$3 .dwtag DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$3)
$C$DW$4 .dwtag DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$31)
.dwendtag $C$DW$1
$C$DW$5 .dwtag DW_TAG_subprogram, DW_AT_name("DAT_wait")
.dwattr $C$DW$5, DW_AT_TI_symbol_name("_DAT_wait")
.dwattr $C$DW$5, DW_AT_declaration
.dwattr $C$DW$5, DW_AT_external
$C$DW$6 .dwtag DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$19)
.dwendtag $C$DW$5
.global _int_mem_temp
_int_mem_temp: .usect ".user_data_int",720,128
$C$DW$7 .dwtag DW_TAG_variable, DW_AT_name("int_mem_temp")
.dwattr $C$DW$7, DW_AT_TI_symbol_name("_int_mem_temp")
.dwattr $C$DW$7, DW_AT_location[DW_OP_addr _int_mem_temp]
.dwattr $C$DW$7, DW_AT_type(*$C$DW$T$29)
.dwattr $C$DW$7, DW_AT_external
; C:\CCStudio_v3.3\C6000\cgtools\bin\opt6x.exe C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\037962 C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\037964
.sect ".text"
.global _yuv422to420
$C$DW$8 .dwtag DW_TAG_subprogram, DW_AT_name("yuv422to420")
.dwattr $C$DW$8, DW_AT_low_pc(_yuv422to420)
.dwattr $C$DW$8, DW_AT_high_pc(0x00)
.dwattr $C$DW$8, DW_AT_TI_symbol_name("_yuv422to420")
.dwattr $C$DW$8, DW_AT_external
.dwattr $C$DW$8, DW_AT_TI_begin_file("my_convert.c")
.dwattr $C$DW$8, DW_AT_TI_begin_line(0x0e)
.dwattr $C$DW$8, DW_AT_TI_begin_column(0x06)
.dwattr $C$DW$8, DW_AT_frame_base[DW_OP_breg31 48]
.dwattr $C$DW$8, DW_AT_TI_skeletal
.dwpsn file "my_convert.c",line 16,column 1,is_stmt,address _yuv422to420
;******************************************************************************
;* FUNCTION NAME: yuv422to420 *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14, *
;* A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12, *
;* B13,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25, *
;* A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20,B21, *
;* B22,B23,B24,B25,B26,B27,B28,B29,B30,B31 *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14, *
;* A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12, *
;* B13,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25, *
;* A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20,B21, *
;* B22,B23,B24,B25,B26,B27,B28,B29,B30,B31 *
;* Local Frame Size : 0 Args + 0 Auto + 44 Save = 44 byte *
;******************************************************************************
_yuv422to420:
;** --------------------------------------------------------------------------*
MV .L1X SP,A31 ; |16|
|| STW .D2T1 A11,*SP--(48) ; |16|
STDW .D1T1 A13:A12,*-A31(40) ; |16|
|| STDW .D2T2 B11:B10,*+SP(24) ; |16|
STDW .D1T1 A15:A14,*-A31(32) ; |16|
|| STDW .D2T2 B13:B12,*+SP(32) ; |16|
STW .D1T1 A10,*-A31(4) ; |16|
|| STW .D2T2 B3,*+SP(40) ; |16|
$C$DW$9 .dwtag DW_TAG_formal_parameter, DW_AT_name("frameIn")
.dwattr $C$DW$9, DW_AT_TI_symbol_name("_frameIn")
.dwattr $C$DW$9, DW_AT_type(*$C$DW$T$24)
.dwattr $C$DW$9, DW_AT_location[DW_OP_reg4]
$C$DW$10 .dwtag DW_TAG_formal_parameter, DW_AT_name("frm_out")
.dwattr $C$DW$10, DW_AT_TI_symbol_name("_frm_out")
.dwattr $C$DW$10, DW_AT_type(*$C$DW$T$24)
.dwattr $C$DW$10, DW_AT_location[DW_OP_reg20]
$C$DW$11 .dwtag DW_TAG_formal_parameter, DW_AT_name("width")
.dwattr $C$DW$11, DW_AT_TI_symbol_name("_width")
.dwattr $C$DW$11, DW_AT_type(*$C$DW$T$10)
.dwattr $C$DW$11, DW_AT_location[DW_OP_reg6]
$C$DW$12 .dwtag DW_TAG_formal_parameter, DW_AT_name("height")
.dwattr $C$DW$12, DW_AT_TI_symbol_name("_height")
.dwattr $C$DW$12, DW_AT_type(*$C$DW$T$10)
.dwattr $C$DW$12, DW_AT_location[DW_OP_reg22]
MV .L1X B6,A0 ; |16|
|| MVKL .S1 _int_mem_temp,A3
|| MVKL .S2 _DAT_copy,B5 ; |30|
|| LDW .D1T1 *+A4(4),A14 ; |18|
|| LDW .D2T2 *+B4(8),B10 ; |23|
MVKH .S1 _int_mem_temp,A3
|| MVKH .S2 _DAT_copy,B5 ; |30|
|| MV .L1X B6,A11 ; |16|
|| LDW .D1T1 *+A4(8),A10 ; |19|
|| LDW .D2T2 *+B4(4),B11 ; |22|
[!A0] BNOP .S2 $C$L2,4 ; |28|
|| MVK .S1 0x2d0,A15
|| MV .L1X B6,A12 ; |16|
MV .L2X A3,B13
; BRANCHCC OCCURS {$C$L2} ; |28|
;** --------------------------------------------------------------------------*
CALL .S2 B5 ; |30|
|| LDW .D1T1 *A4,A13
LDW .D2T2 *B4,B12
.dwpsn file "my_convert.c",line 28,column 0,is_stmt
NOP 3
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;* Disqualified loop: Loop contains a call
;*----------------------------------------------------------------------------*
$C$L1:
$C$DW$L$_yuv422to420$3$B:
.dwpsn file "my_convert.c",line 29,column 0,is_stmt
EXTU .S1 A15,16,16,A6 ; |30|
|| MV .L2 B13,B4 ; |30|
|| MV .L1 A13,A4 ; |30|
|| ADDKPC .S2 $C$RL0,B3,0 ; |30|
$C$RL0: ; CALL OCCURS {_DAT_copy} ; |30|
$C$DW$L$_yuv422to420$3$E:
;** --------------------------------------------------------------------------*
$C$DW$L$_yuv422to420$4$B:
MVKL .S1 _DAT_copy,A3 ; |31|
MVKH .S1 _DAT_copy,A3 ; |31|
MV .L1X B13,A4 ; |31|
CALL .S2X A3 ; |31|
MV .L2 B12,B4 ; |31|
EXTU .S1 A15,16,16,A6 ; |31|
ADDKPC .S2 $C$RL1,B3,2 ; |31|
$C$RL1: ; CALL OCCURS {_DAT_copy} ; |31|
MVKL .S2 _DAT_wait,B4 ; |32|
MVKH .S2 _DAT_wait,B4 ; |32|
CALL .S2 B4 ; |32|
ADDKPC .S2 $C$RL2,B3,4 ; |32|
$C$RL2: ; CALL OCCURS {_DAT_wait} ; |32|
$C$DW$L$_yuv422to420$4$E:
;** --------------------------------------------------------------------------*
$C$DW$L$_yuv422to420$5$B:
MVKL .S2 _DAT_copy,B5 ; |30|
|| SUB .L1 A11,1,A0 ; |28|
[ A0] B .S1 $C$L1 ; |28|
|| MVKH .S2 _DAT_copy,B5 ; |30|
[ A0] CALL .S2 B5 ; |30|
SUB .L1 A11,1,A11 ; |28|
ADDK .S1 720,A13 ; |28|
ADDK .S2 720,B12 ; |28|
.dwpsn file "my_convert.c",line 33,column 0,is_stmt
NOP 1
; BRANCHCC OCCURS {$C$L1} ; |28|
$C$DW$L$_yuv422to420$5$E:
;** --------------------------------------------------------------------------*
$C$L2:
SHR .S1 A12,1,A0 ; |35|
|| MVKL .S2 _DAT_copy,B5 ; |37|
MV .L1 A0,A11 ; |35|
|| MV .D1 A0,A13 ; |37|
|| MVKH .S2 _DAT_copy,B5 ; |37|
|| MVK .S1 0x168,A12
[!A0] BNOP .S1 $C$L4,5 ; |35|
; BRANCHCC OCCURS {$C$L4} ; |35|
;** --------------------------------------------------------------------------*
CALL .S2 B5 ; |37|
.dwpsn file "my_convert.c",line 35,column 0,is_stmt
NOP 4
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;* Disqualified loop: Loop contains a call
;*----------------------------------------------------------------------------*
$C$L3:
$C$DW$L$_yuv422to420$8$B:
.dwpsn file "my_convert.c",line 36,column 0,is_stmt
EXTU .S1 A12,16,16,A6 ; |37|
|| MV .L2 B13,B4 ; |37|
|| MV .L1 A14,A4 ; |37|
|| ADDKPC .S2 $C$RL3,B3,0 ; |37|
$C$RL3: ; CALL OCCURS {_DAT_copy} ; |37|
$C$DW$L$_yuv422to420$8$E:
;** --------------------------------------------------------------------------*
$C$DW$L$_yuv422to420$9$B:
MVKL .S1 _DAT_copy,A3 ; |38|
MVKH .S1 _DAT_copy,A3 ; |38|
MV .L1X B13,A4 ; |38|
CALL .S2X A3 ; |38|
MV .L2 B11,B4 ; |38|
EXTU .S1 A12,16,16,A6 ; |38|
ADDKPC .S2 $C$RL4,B3,2 ; |38|
$C$RL4: ; CALL OCCURS {_DAT_copy} ; |38|
MVKL .S2 _DAT_wait,B4 ; |39|
MVKH .S2 _DAT_wait,B4 ; |39|
CALL .S2 B4 ; |39|
ADDKPC .S2 $C$RL5,B3,4 ; |39|
$C$RL5: ; CALL OCCURS {_DAT_wait} ; |39|
$C$DW$L$_yuv422to420$9$E:
;** --------------------------------------------------------------------------*
$C$DW$L$_yuv422to420$10$B:
MVKL .S2 _DAT_copy,B5 ; |37|
|| SUB .L1 A13,1,A0 ; |35|
[ A0] B .S1 $C$L3 ; |35|
|| MVKH .S2 _DAT_copy,B5 ; |37|
[ A0] CALL .S2 B5 ; |37|
SUB .L1 A13,1,A13 ; |35|
ADDK .S1 720,A14 ; |35|
ADDK .S2 360,B11 ; |35|
.dwpsn file "my_convert.c",line 40,column 0,is_stmt
NOP 1
; BRANCHCC OCCURS {$C$L3} ; |35|
$C$DW$L$_yuv422to420$10$E:
;** --------------------------------------------------------------------------*
$C$L4:
MV .L1 A11,A0 ; |44|
|| MVKL .S2 _DAT_copy,B5 ; |44|
[!A0] BNOP .S1 $C$L6,5 ; |42|
|| MVKH .S2 _DAT_copy,B5 ; |44|
; BRANCHCC OCCURS {$C$L6} ; |42|
;** --------------------------------------------------------------------------*
CALL .S2 B5 ; |44|
.dwpsn file "my_convert.c",line 42,column 0,is_stmt
NOP 4
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;* Disqualified loop: Loop contains a call
;*----------------------------------------------------------------------------*
$C$L5:
$C$DW$L$_yuv422to420$13$B:
.dwpsn file "my_convert.c",line 43,column 0,is_stmt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -