📄 cgiparse.asm
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen PC v5.1.0 *
;* Date/Time created: Mon Aug 13 17:31:57 2007 *
;******************************************************************************
.compiler_opts --endian=little --mem_model:code=far --mem_model:data=far --predefine_memory_model_macros --quiet --silicon_version=6400
;******************************************************************************
;* 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 : Optimized w/Profiling Info *
;* *
;******************************************************************************
.asg A15, FP
.asg B14, DP
.asg B15, SP
.global $bss
DW$CU .dwtag DW_TAG_compile_unit
.dwattr DW$CU, DW_AT_name("cgiparse.c")
.dwattr DW$CU, DW_AT_producer("TMS320C6x C/C++ Codegen PC v5.1.0 Copyright (c) 1996-2005 Texas Instruments Incorporated")
.dwattr DW$CU, DW_AT_stmt_list(0x00)
.dwattr DW$CU, DW_AT_TI_VERSION(0x01)
DW$1 .dwtag DW_TAG_subprogram, DW_AT_name("strtol"), DW_AT_symbol_name("_strtol")
.dwattr DW$1, DW_AT_type(*DW$T$12)
.dwattr DW$1, DW_AT_declaration(0x01)
.dwattr DW$1, DW_AT_external(0x01)
DW$2 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$29)
DW$3 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$30)
DW$4 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$10)
.dwendtag DW$1
; C:\CCStudio_v3.1\C6000\cgtools\bin\opt6x.exe C:\DOCUME~1\new\LOCALS~1\Temp\TI8602 C:\DOCUME~1\new\LOCALS~1\Temp\TI8604
.sect ".text"
.global _cgiParseVars
DW$5 .dwtag DW_TAG_subprogram, DW_AT_name("cgiParseVars"), DW_AT_symbol_name("_cgiParseVars")
.dwattr DW$5, DW_AT_low_pc(_cgiParseVars)
.dwattr DW$5, DW_AT_high_pc(0x00)
.dwattr DW$5, DW_AT_begin_file("cgiparse.c")
.dwattr DW$5, DW_AT_begin_line(0x18)
.dwattr DW$5, DW_AT_begin_column(0x07)
.dwattr DW$5, DW_AT_frame_base[DW_OP_breg31 48]
.dwattr DW$5, DW_AT_skeletal(0x01)
.dwpsn "cgiparse.c",25,1
;******************************************************************************
;* FUNCTION NAME: _cgiParseVars *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,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,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 + 8 Auto + 40 Save = 48 byte *
;******************************************************************************
_cgiParseVars:
;** --------------------------------------------------------------------------*
DW$6 .dwtag DW_TAG_formal_parameter, DW_AT_name("PostIn"), DW_AT_symbol_name("_PostIn")
.dwattr DW$6, DW_AT_type(*DW$T$21)
.dwattr DW$6, DW_AT_location[DW_OP_reg4]
DW$7 .dwtag DW_TAG_formal_parameter, DW_AT_name("pParseIndex"), DW_AT_symbol_name("_pParseIndex")
.dwattr DW$7, DW_AT_type(*DW$T$22)
.dwattr DW$7, DW_AT_location[DW_OP_reg20]
MV .L1X SP,A31 ; |25|
|| STW .D2T1 A14,*SP--(48) ; |25|
|| ZERO .L2 B5 ; |37|
STDW .D2T2 B13:B12,*+SP(40)
|| MV .L2 B4,B13 ; |25|
|| STDW .D1T1 A13:A12,*-A31(24)
|| MV .S2X A4,B12 ; |25|
LDW .D2T2 *B13,B4 ; |35|
|| STDW .D1T1 A11:A10,*-A31(32)
STDW .D2T2 B11:B10,*+SP(32)
ZERO .L2 B10 ; |39|
STW .D2T2 B3,*+SP(12)
STB .D2T2 B5,*+SP(10) ; |37|
CMPEQ .L2 B4,-1,B0 ; |40|
|| MV .L1X B4,A0 ; |40|
[!A0] ZERO .L2 B0 ; |41| nullify predicate
|| [!A0] B .S2 L1 ; |38|
|| MV .L1X B4,A11 ; |35|
|| [ A0] ZERO .S1 A4 ; |41|
|| MV .D1 A0,A2 ; guard predicate rewrite
[ B0] B .S2 L6 ; |41|
|| [!A0] ADD .L1X A11,B12,A10 ; |46|
|| [!A0] MV .D1 A11,A12
|| [!A2] MVK .S1 61,A3 ; |46|
[!A0] ADD .L2X A11,B12,B5 ; |46|
[!A0] LDB .D2T1 *B5,A0 ; |46|
NOP 2
; BRANCHCC OCCURS {L1} ; |38|
;** --------------------------------------------------------------------------*
[!B0] ADD .L2X 1,A11,B10 ; |43|
|| [!B0] ADD .L1 1,A11,A11 ; |43|
; BRANCHCC OCCURS {L6} ; |41|
;** --------------------------------------------------------------------------*
MVK .S1 61,A3 ; |46|
|| MV .L1 A11,A12
|| ADD .D1X A11,B12,A10 ; |46|
ADD .L2X A11,B12,B5 ; |46|
LDB .D2T1 *B5,A0 ; |46|
NOP 2
;** --------------------------------------------------------------------------*
L1:
MVK .S1 0x26,A14
MVK .S1 0x3d,A13 ; |46|
CMPEQ .L1 A0,A3,A1 ; |46|
[ A1] BNOP .S1 L5,3 ; |46|
|| [!A1] CMPEQ .L2X A0,0,B4 ; |46|
|| [!A1] CMPEQ .L1 A0,A14,A3 ; |46|
MV .L2X A1,B0 ; guard predicate rewrite
[!A1] OR .L1X B4,A3,A1 ; |46|
|| [!B0] MVK .S1 43,A3 ; |48|
; BRANCHCC OCCURS {L5} ; |46|
;** --------------------------------------------------------------------------*
[!A1] ADD .L2 B10,B12,B11
|| MV .S1 A1,A2 ; guard predicate rewrite
|| [ A1] B .S2 L5 ; |46|
|| CMPEQ .L1 A0,A3,A1 ; |48|
.dwpsn "cgiparse.c",46,0
[ A2] ZERO .L1 A1 ; |48| nullify predicate
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;* Disqualified loop: Loop contains control code
;*----------------------------------------------------------------------------*
L2:
DW$L$_cgiParseVars$6$B:
.dwpsn "cgiparse.c",47,0
[ A1] BNOP .S1 L3,3 ; |48|
; BRANCHCC OCCURS {L5} ; |46|
DW$L$_cgiParseVars$6$E:
;** --------------------------------------------------------------------------*
DW$L$_cgiParseVars$7$B:
[!A1] MVK .S1 37,A3 ; |50|
|| MVK .S2 32,B4 ; |49|
CMPEQ .L1 A0,A3,A1 ; |50|
; BRANCHCC OCCURS {L3} ; |48|
DW$L$_cgiParseVars$7$E:
;** --------------------------------------------------------------------------*
DW$L$_cgiParseVars$8$B:
MVKL .S2 _strtol,B5 ; |54|
|| [!A1] B .S1 L4 ; |58|
|| [ A1] ADD .L1 1,A10,A10 ; |52|
|| [!A1] STB .D2T1 A0,*B11 ; |58|
|| [!A1] ADD .D1 1,A11,A11 ; |59|
|| [!A1] ADD .L2 1,B10,B10 ; |58|
[ A1] LDB .D1T1 *A10++,A4 ; |52|
|| MVKH .S2 _strtol,B5 ; |54|
[ A1] CALL .S2 B5 ; |54|
|| [ A1] LDB .D1T1 *A10,A3 ; |53|
[!A1] LDB .D1T1 *++A10,A0 ; |59|
NOP 2
; BRANCHCC OCCURS {L4} ; |58|
DW$L$_cgiParseVars$8$E:
;** --------------------------------------------------------------------------*
DW$L$_cgiParseVars$9$B:
STB .D2T1 A4,*+SP(8) ; |52|
STB .D2T1 A3,*+SP(9) ; |53|
|| MVK .S1 0x10,A6 ; |54|
|| ADDKPC .S2 RL0,B3,0 ; |54|
|| ZERO .L2 B4 ; |54|
|| ADD .L1X 8,SP,A4 ; |54|
RL0: ; CALL OCCURS {_strtol} ; |54|
DW$L$_cgiParseVars$9$E:
;** --------------------------------------------------------------------------*
DW$L$_cgiParseVars$10$B:
BNOP .S1 L4,2 ; |56|
|| ADD .L1 2,A11,A11 ; |52|
|| STB .D2T1 A4,*B11 ; |55|
|| ADD .L2 1,B10,B10 ; |55|
LDB .D1T1 *++A10,A0 ; |59|
|| ADD .L1 1,A11,A11 ; |59|
NOP 2
; BRANCH OCCURS {L4} ; |56|
DW$L$_cgiParseVars$10$E:
;** --------------------------------------------------------------------------*
L3:
DW$L$_cgiParseVars$11$B:
STB .D2T2 B4,*B11 ; |49|
|| ADD .L1 1,A11,A11 ; |59|
|| ADD .L2 1,B10,B10 ; |49|
LDB .D1T1 *++A10,A0 ; |59|
NOP 2
DW$L$_cgiParseVars$11$E:
;** --------------------------------------------------------------------------*
L4:
DW$L$_cgiParseVars$12$B:
NOP 2
CMPEQ .L2X A0,0,B4 ; |46|
|| CMPEQ .L1 A0,A13,A1 ; |59|
[!A1] CMPEQ .L1 A0,A14,A3 ; |46|
|| [!A1] B .S1 L2 ; |59|
MVK .S1 43,A3 ; |48|
|| OR .L1X B4,A3,A1 ; |46|
|| MV .L2X A1,B0 ; guard predicate rewrite
[ B0] ZERO .L1 A1 ; |48| nullify predicate
[!A1] ADD .L2 B10,B12,B11
|| MV .L1 A1,A2 ; guard predicate rewrite
CMPEQ .L1 A0,A3,A1 ; |48|
|| [ A1] B .S1 L5 ; |46|
.dwpsn "cgiparse.c",60,0
[ A2] ZERO .L1 A1 ; |48| nullify predicate
; BRANCHCC OCCURS {L2} ; |59|
DW$L$_cgiParseVars$12$E:
;** --------------------------------------------------------------------------*
L5:
[!A0] MVK .L2 0xffffffff,B4 ; |64|
ADD .L2 B10,B12,B31
[!A0] MV .L1X B4,A11 ; |64|
ZERO .S2 B5 ; |37|
STB .D2T2 B5,*B31 ; |67|
|| MV .L2X A11,B4 ; |64|
STW .D2T2 B4,*B13 ; |70|
|| ADD .L1X B12,A12,A4 ; |73|
;** --------------------------------------------------------------------------*
L6:
LDW .D2T2 *+SP(12),B3 ; |74|
MV .L1X SP,A31 ; |74|
LDDW .D1T1 *+A31(24),A13:A12 ; |74|
LDDW .D2T2 *+SP(40),B13:B12 ; |74|
LDDW .D1T1 *+A31(16),A11:A10 ; |74|
RET .S2 B3 ; |74|
|| LDDW .D2T2 *+SP(32),B11:B10 ; |74|
LDW .D2T1 *++SP(48),A14 ; |74|
.dwpsn "cgiparse.c",74,1
NOP 4
; BRANCH OCCURS {B3} ; |74|
DW$8 .dwtag DW_TAG_loop
.dwattr DW$8, DW_AT_name("D:\dm642_qian\video_networking_ip\jpeg_netcam\src\network\cgiparse.asm:L2:1:1186997517")
.dwattr DW$8, DW_AT_begin_file("cgiparse.c")
.dwattr DW$8, DW_AT_begin_line(0x2e)
.dwattr DW$8, DW_AT_end_line(0x3c)
DW$9 .dwtag DW_TAG_loop_range
.dwattr DW$9, DW_AT_low_pc(DW$L$_cgiParseVars$6$B)
.dwattr DW$9, DW_AT_high_pc(DW$L$_cgiParseVars$6$E)
DW$10 .dwtag DW_TAG_loop_range
.dwattr DW$10, DW_AT_low_pc(DW$L$_cgiParseVars$9$B)
.dwattr DW$10, DW_AT_high_pc(DW$L$_cgiParseVars$9$E)
DW$11 .dwtag DW_TAG_loop_range
.dwattr DW$11, DW_AT_low_pc(DW$L$_cgiParseVars$7$B)
.dwattr DW$11, DW_AT_high_pc(DW$L$_cgiParseVars$7$E)
DW$12 .dwtag DW_TAG_loop_range
.dwattr DW$12, DW_AT_low_pc(DW$L$_cgiParseVars$8$B)
.dwattr DW$12, DW_AT_high_pc(DW$L$_cgiParseVars$8$E)
DW$13 .dwtag DW_TAG_loop_range
.dwattr DW$13, DW_AT_low_pc(DW$L$_cgiParseVars$10$B)
.dwattr DW$13, DW_AT_high_pc(DW$L$_cgiParseVars$10$E)
DW$14 .dwtag DW_TAG_loop_range
.dwattr DW$14, DW_AT_low_pc(DW$L$_cgiParseVars$11$B)
.dwattr DW$14, DW_AT_high_pc(DW$L$_cgiParseVars$11$E)
DW$15 .dwtag DW_TAG_loop_range
.dwattr DW$15, DW_AT_low_pc(DW$L$_cgiParseVars$12$B)
.dwattr DW$15, DW_AT_high_pc(DW$L$_cgiParseVars$12$E)
.dwendtag DW$8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -