////////////////////////////////////////////////////////////////////////////// // / // IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 29/Oct/2008 03:34:15 / // Copyright 1999-2005 IAR Systems. All rights reserved. / // / // Cpu mode = interwork / // Endian = little / // Stack alignment = 4 / // Source file = D:\Pasha\elf\_MY_PROJECT_\NRSS\decode_xml.c / // Command line = D:\Pasha\elf\_MY_PROJECT_\NRSS\decode_xml.c -D / // NEWSGOLD -D ELKA -lCN D:\Pasha\elf\_MY_PROJECT_\NRS / // S\Release_ELKA\List\ -la / // D:\Pasha\elf\_MY_PROJECT_\NRSS\Release_ELKA\List\ / // -o D:\Pasha\elf\_MY_PROJECT_\NRSS\Release_ELKA\Obj\ / // -s9 --no_unroll --cpu_mode arm --endian little / // --cpu ARM926EJ-S --stack_align 4 --interwork -e / // --fpu None --dlib_config "D:\Pasha\Embedded / // Workbench 4.0 Evaluation2\ARM\LIB\dl5tpainl8n.h" / // -I "D:\Pasha\Embedded Workbench 4.0 / // Evaluation2\ARM\INC\" --inline_threshold=2 / // List file = D:\Pasha\elf\_MY_PROJECT_\NRSS\Release_ELKA\List\de / // code_xml.s79 / // / // / ////////////////////////////////////////////////////////////////////////////// NAME decode_xml RTMODEL "StackAlign4", "USED" RTMODEL "__cpu_mode", "__pcs__interwork" RTMODEL "__data_model", "absolute" RTMODEL "__endian", "little" RTMODEL "__rt_version", "6" RSEG CSTACK:DATA:NOROOT(2) MULTWEAK ??AddTextToNode??rT MULTWEAK ??DestroyTree??rT MULTWEAK ??EndAttr??rT MULTWEAK ??EndTag??rT MULTWEAK ??FreeAttrQueue??rT MULTWEAK ??IsName??rT MULTWEAK ??XMLDecode??rT PUBLIC AddTextToNode FUNCTION AddTextToNode,0203H LOCFRAME CSTACK, 28, STACK PUBLIC DestroyTree FUNCTION DestroyTree,0203H LOCFRAME CSTACK, 12, STACK PUBLIC EndAttr FUNCTION EndAttr,0203H LOCFRAME CSTACK, 24, STACK PUBLIC EndTag FUNCTION EndTag,0203H LOCFRAME CSTACK, 20, STACK PUBLIC FreeAttrQueue FUNCTION FreeAttrQueue,0203H LOCFRAME CSTACK, 12, STACK PUBLIC IsName FUNCTION IsName,0203H PUBLIC XMLDecode FUNCTION XMLDecode,0203H LOCFRAME CSTACK, 596, STACK CFI Names cfiNames0 CFI StackFrame CFA R13 HUGEDATA CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32 CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, CPSR:32, R13:32 CFI Resource R14:32, SPSR:32 CFI VirtualResource ?RET:32 CFI EndNames cfiNames0 CFI Common cfiCommon0 Using cfiNames0 CFI CodeAlign 2 CFI DataAlign 4 CFI ReturnAddress ?RET CODE CFI CFA R13+0 CFI R0 Undefined CFI R1 Undefined CFI R2 Undefined CFI R3 Undefined CFI R4 SameValue CFI R5 SameValue CFI R6 SameValue CFI R7 SameValue CFI R8 SameValue CFI R9 SameValue CFI R10 SameValue CFI R11 SameValue CFI R12 Undefined CFI CPSR SameValue CFI R14 Undefined CFI SPSR SameValue CFI ?RET R14 CFI EndCommon cfiCommon0 CFI Common cfiCommon1 Using cfiNames0 CFI CodeAlign 4 CFI DataAlign 4 CFI ReturnAddress ?RET CODE CFI CFA R13+0 CFI R0 Undefined CFI R1 Undefined CFI R2 Undefined CFI R3 Undefined CFI R4 SameValue CFI R5 SameValue CFI R6 SameValue CFI R7 SameValue CFI R8 SameValue CFI R9 SameValue CFI R10 SameValue CFI R11 SameValue CFI R12 Undefined CFI CPSR SameValue CFI R14 Undefined CFI SPSR SameValue CFI ?RET R14 CFI EndCommon cfiCommon1 AddTextToNode SYMBOL "AddTextToNode" ??AddTextToNode??rT SYMBOL "??rT", AddTextToNode DestroyTree SYMBOL "DestroyTree" ??DestroyTree??rT SYMBOL "??rT", DestroyTree EndAttr SYMBOL "EndAttr" ??EndAttr??rT SYMBOL "??rT", EndAttr EndTag SYMBOL "EndTag" ??EndTag??rT SYMBOL "??rT", EndTag FreeAttrQueue SYMBOL "FreeAttrQueue" ??FreeAttrQueue??rT SYMBOL "??rT", FreeAttrQueue IsName SYMBOL "IsName" ??IsName??rT SYMBOL "??rT", IsName XMLDecode SYMBOL "XMLDecode" ??XMLDecode??rT SYMBOL "??rT", XMLDecode RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock0 Using cfiCommon0 CFI NoFunction THUMB ??IsName??rT: BX PC Nop CFI EndBlock cfiBlock0 REQUIRE IsName RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock1 Using cfiCommon1 CFI Function IsName ARM IsName: CMP R0,#+97 BLT ??IsName_0 CMP R0,#+123 BLT ??IsName_1 B ??IsName_2 ??IsName_0: CMP R0,#+65 BLT ??IsName_2 CMP R0,#+91 BLT ??IsName_1 ??IsName_2: CMP R0,#+48 BLT ??IsName_3 CMP R0,#+58 BLT ??IsName_1 ??IsName_3: CMP R0,#+95 CMPNE R0,#+45 CMPNE R0,#+58 BNE ??IsName_4 ??IsName_1: MOV R0,#+1 BX LR ??IsName_4: MOV R0,#+0 BX LR ;; return CFI EndBlock cfiBlock1 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock2 Using cfiCommon0 CFI NoFunction THUMB ??FreeAttrQueue??rT: BX PC Nop CFI EndBlock cfiBlock2 REQUIRE FreeAttrQueue RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock3 Using cfiCommon1 CFI Function FreeAttrQueue ARM FreeAttrQueue: PUSH {R4,R5,LR} CFI ?RET Frame(CFA, -4) CFI R5 Frame(CFA, -8) CFI R4 Frame(CFA, -12) CFI CFA R13+12 MOVS R4,R0 POPEQ {R4,R5,PC} ??FreeAttrQueue_0: LDR R5,[R4, #+0] LDR R0,[R4, #+4] SWI +21 LDR R0,[R4, #+8] SWI +21 MOV R0,R4 SWI +21 MOVS R4,R5 BNE ??FreeAttrQueue_0 POP {R4,R5,PC} ;; return CFI EndBlock cfiBlock3 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock4 Using cfiCommon0 CFI NoFunction THUMB ??DestroyTree??rT: BX PC Nop CFI EndBlock cfiBlock4 REQUIRE DestroyTree RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock5 Using cfiCommon1 CFI Function DestroyTree ARM DestroyTree: PUSH {R4,R5,LR} CFI ?RET Frame(CFA, -4) CFI R5 Frame(CFA, -8) CFI R4 Frame(CFA, -12) CFI CFA R13+12 MOVS R4,R0 POPEQ {R4,R5,PC} ??DestroyTree_0: LDR R0,[R4, #+12] BL FreeAttrQueue LDR R0,[R4, #+4] CMP R0,#+0 BEQ ??DestroyTree_1 BL DestroyTree ??DestroyTree_1: LDR R5,[R4, #+0] LDR R0,[R4, #+8] SWI +21 LDR R0,[R4, #+16] SWI +21 MOV R0,R4 SWI +21 MOVS R4,R5 BNE ??DestroyTree_0 POP {R4,R5,PC} ;; return CFI EndBlock cfiBlock5 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock6 Using cfiCommon0 CFI NoFunction THUMB ??AddTextToNode??rT: BX PC Nop CFI EndBlock cfiBlock6 REQUIRE AddTextToNode RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock7 Using cfiCommon1 CFI Function AddTextToNode ARM AddTextToNode: PUSH {R4-R9,LR} CFI ?RET Frame(CFA, -4) CFI R9 Frame(CFA, -8) CFI R8 Frame(CFA, -12) CFI R7 Frame(CFA, -16) CFI R6 Frame(CFA, -20) CFI R5 Frame(CFA, -24) CFI R4 Frame(CFA, -28) CFI CFA R13+28 MOV R6,R0 LDR R0,[R6, #+16] MOV R7,R1 MOV R8,R2 MOV R4,#+0 CMP R0,#+0 BEQ ??AddTextToNode_0 SWI +27 MOV R9,R0 LDR R0,[R6, #+16] ADD R5,R8,R9 ADD R1,R5,#+2 SWI +186 STR R0,[R6, #+16] MOV R6,R0 MOV R0,#+32 STRB R0,[R9, +R6] MOV R2,R8 MOV R1,R7 ADD R0,R9,R6 ADD R0,R0,#+1 SWI +278 ADD R0,R5,R6 STRB R4,[R0, #+1] POP {R4-R9,PC} ??AddTextToNode_0: ADD R0,R8,#+1 SWI +20 STR R0,[R6, #+16] MOV R6,R0 MOV R2,R8 MOV R1,R7 SWI +278 STRB R4,[R8, +R6] POP {R4-R9,PC} ;; return CFI EndBlock cfiBlock7 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock8 Using cfiCommon0 CFI NoFunction THUMB ??EndTag??rT: BX PC Nop CFI EndBlock cfiBlock8 REQUIRE EndTag RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock9 Using cfiCommon1 CFI Function EndTag ARM EndTag: PUSH {R4-R7,LR} CFI ?RET Frame(CFA, -4) CFI R7 Frame(CFA, -8) CFI R6 Frame(CFA, -12) CFI R5 Frame(CFA, -16) CFI R4 Frame(CFA, -20) CFI CFA R13+20 MOV R4,R0 MOV R5,R1 MOV R6,R2 MOV R0,#+20 SWI +20 MOV R7,R0 MOV R1,#+20 SWI +285 ADD R0,R5,#+1 SWI +20 STR R0,[R7, #+8] MOV R2,R5 MOV R1,R4 SWI +278 LDR R0,[R7, #+8] MOV R1,#+0 STRB R1,[R5, +R0] STR R6,[R7, #+12] MOV R0,R7 POP {R4-R7,PC} ;; return CFI EndBlock cfiBlock9 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock10 Using cfiCommon0 CFI NoFunction THUMB ??EndAttr??rT: BX PC Nop CFI EndBlock cfiBlock10 REQUIRE EndAttr RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock11 Using cfiCommon1 CFI Function EndAttr ARM EndAttr: PUSH {R4-R8,LR} CFI ?RET Frame(CFA, -4) CFI R8 Frame(CFA, -8) CFI R7 Frame(CFA, -12) CFI R6 Frame(CFA, -16) CFI R5 Frame(CFA, -20) CFI R4 Frame(CFA, -24) CFI CFA R13+24 MOV R4,R0 MOV R5,R1 MOV R6,R2 MOV R7,R3 MOV R0,#+12 SWI +20 MOV R8,R0 MOV R1,#+12 SWI +285 ADD R0,R5,#+1 SWI +20 STR R0,[R8, #+4] MOV R2,R5 MOV R1,R4 SWI +278 LDR R0,[R8, #+4] MOV R4,#+0 STRB R4,[R5, +R0] CMP R7,#+1 BLT ??EndAttr_0 ADD R0,R7,#+1 SWI +20 STR R0,[R8, #+8] MOV R2,R7 MOV R1,R6 SWI +278 LDR R0,[R8, #+8] STRB R4,[R7, +R0] ??EndAttr_0: MOV R0,R8 POP {R4-R8,PC} ;; return CFI EndBlock cfiBlock11 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock12 Using cfiCommon0 CFI NoFunction THUMB ??XMLDecode??rT: BX PC Nop CFI EndBlock cfiBlock12 REQUIRE XMLDecode RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock13 Using cfiCommon1 CFI Function XMLDecode ARM XMLDecode: PUSH {R1,R4-R11,LR} CFI ?RET Frame(CFA, -4) CFI R11 Frame(CFA, -8) CFI R10 Frame(CFA, -12) CFI R9 Frame(CFA, -16) CFI R8 Frame(CFA, -20) CFI R7 Frame(CFA, -24) CFI R6 Frame(CFA, -28) CFI R5 Frame(CFA, -32) CFI R4 Frame(CFA, -36) CFI CFA R13+40 SUB SP,SP,#+556 CFI CFA R13+596 MOV R4,R0 MOV R10,#+0 MOV R1,#+0 STR R1,[SP, #+24] STR R1,[SP, #+28] STR R1,[SP, #+0] STR R1,[SP, #+32] MOV R5,R1 MOV R6,#+1 MOV R7,R6 MOV R9,R1 B ??XMLDecode_1 ??XMLDecode_2: MOV R8,R0 ??XMLDecode_3: ADD R9,R9,#+1 ??XMLDecode_1: LDR R0,[SP, #+556] CMP R9,R0 BGE ??XMLDecode_4 LDRB R11,[R9, +R4] ADD R0,R8,#+1 SUB R1,R6,#+1 CMP R1,#+12 BHI ??XMLDecode_3 ADR R2,??XMLDecode_0 MOV R1,R1, LSL #+1 LDRSH R2,[R2, R1] ADD PC,PC,R2, LSL #+2 DATA ??XMLDecode_0: DC16 +6,+19,+54,+71 DC16 +109,+136,+153,+156 DC16 +166,+90,+215,+232 DC16 +245,+0 ARM ??XMLDecode_5: CMP R11,#+60 MOVEQ R6,#+2 BEQ ??XMLDecode_3 CMP R11,#+32 CMPNE R11,#+10 CMPNE R11,#+13 CMPNE R11,#+9 BEQ ??XMLDecode_3 ??XMLDecode_4: MOV R0,R10 BL FreeAttrQueue LDR R0,[SP, #+28] ADD SP,SP,#+560 CFI CFA R13+36 POP {R4-R11,PC} ;; return CFI CFA R13+596 ??XMLDecode_6: CMP R11,#+97 BLT ??XMLDecode_7 CMP R11,#+123 BLT ??XMLDecode_8 ??XMLDecode_9: CMP R11,#+32 CMPNE R11,#+10 CMPNE R11,#+13 CMPNE R11,#+9 BNE ??XMLDecode_10 MOV R6,#+3 ??XMLDecode_11: MOV R7,#+2 B ??XMLDecode_3 ??XMLDecode_7: CMP R11,#+65 BLT ??XMLDecode_9 CMP R11,#+91 BGE ??XMLDecode_9 ??XMLDecode_8: MOV R6,#+4 MOV R7,#+2 ??XMLDecode_12: ADD R1,R9,R4 STR R1,[SP, #+20] MOV R1,#+1 ??XMLDecode_13: STR R1,[SP, #+4] B ??XMLDecode_3 ??XMLDecode_10: CMP R11,#+63 MOVEQ R6,#+3 MOVEQ R7,#+5 BEQ ??XMLDecode_3 CMP R11,#+47 MOVEQ R6,#+3 MOVEQ R7,#+3 BEQ ??XMLDecode_3 CMP R11,#+33 BNE ??XMLDecode_4 MOV R6,#+12 B ??XMLDecode_3 ??XMLDecode_14: CMP R11,#+97 BLT ??XMLDecode_15 CMP R11,#+123 BLT ??XMLDecode_16 ??XMLDecode_17: CMP R11,#+32 CMPNE R11,#+10 CMPNE R11,#+13 BEQ ??XMLDecode_3 CMP R11,#+9 ??XMLDecode_18: BNE ??XMLDecode_4 B ??XMLDecode_3 ??XMLDecode_15: CMP R11,#+65 BLT ??XMLDecode_17 CMP R11,#+91 BGE ??XMLDecode_17 ??XMLDecode_16: MOV R6,#+4 B ??XMLDecode_12 ??XMLDecode_19: MOV R0,R11 BL IsName CMP R0,#+0 BEQ ??XMLDecode_20 LDR R1,[SP, #+4] ADD R1,R1,#+1 B ??XMLDecode_13 ??XMLDecode_20: CMP R11,#+32 CMPNE R11,#+10 CMPNE R11,#+13 CMPNE R11,#+9 MOVEQ R6,#+5 BEQ ??XMLDecode_3 CMP R11,#+47 BNE ??XMLDecode_21 MOV R8,#+0 ??XMLDecode_22: MOV R6,#+10 MOV R7,#+4 B ??XMLDecode_3 ??XMLDecode_21: CMP R11,#+62 BNE ??XMLDecode_4 ??XMLDecode_23: MOV R6,#+11 ADD R1,R9,R4 ADD R1,R1,#+1 STR R1,[SP, #+16] MOV R8,#+0 CMP R7,#+2 CMPNE R7,#+4 BNE ??XMLDecode_24 LDR R1,[SP, #+4] LDR R0,[SP, #+20] MOV R2,R10 BL EndTag LDR R1,[SP, #+28] CMP R1,#+0 BNE ??XMLDecode_25 STR R0,[SP, #+28] B ??XMLDecode_26 ??XMLDecode_27: CMP R11,#+97 BLT ??XMLDecode_28 CMP R11,#+123 BLT ??XMLDecode_29 ??XMLDecode_30: CMP R11,#+47 BNE ??XMLDecode_31 B ??XMLDecode_22 ??XMLDecode_28: CMP R11,#+65 BLT ??XMLDecode_30 CMP R11,#+91 BGE ??XMLDecode_30 ??XMLDecode_29: MOV R6,#+6 ADD R1,R9,R4 STR R1,[SP, #+36] MOV R1,#+1 ??XMLDecode_32: STR R1,[SP, #+8] B ??XMLDecode_3 ??XMLDecode_31: CMP R11,#+62 BEQ ??XMLDecode_23 CMP R11,#+32 CMPNE R11,#+10 CMPNE R11,#+13 CMPNE R11,#+9 CMPNE R11,#+63 BEQ ??XMLDecode_3 CMP R7,#+5 B ??XMLDecode_18 ??XMLDecode_33: MOV R0,R11 BL IsName CMP R0,#+0 LDRNE R1,[SP, #+8] ADDNE R1,R1,#+1 BNE ??XMLDecode_32 CMP R11,#+61 BNE ??XMLDecode_34 ??XMLDecode_35: MOV R6,#+8 B ??XMLDecode_3 ??XMLDecode_34: CMP R11,#+32 CMPNE R11,#+10 CMPNE R11,#+13 CMPNE R11,#+9 BNE ??XMLDecode_4 MOV R6,#+7 B ??XMLDecode_3 ??XMLDecode_36: CMP R11,#+61 BEQ ??XMLDecode_35 B ??XMLDecode_17 ??XMLDecode_37: CMP R11,#+34 CMPNE R11,#+39 BNE ??XMLDecode_17 MOV R6,#+9 ADD R1,R9,R4 ADD R1,R1,#+1 STR R1,[SP, #+40] MOV R1,#+0 ??XMLDecode_38: STR R1,[SP, #+12] B ??XMLDecode_3 ??XMLDecode_39: CMP R11,#+34 CMPNE R11,#+39 BNE ??XMLDecode_40 LDR R0,[SP, #+36] LDR R3,[SP, #+12] LDR R2,[SP, #+40] LDR R1,[SP, #+8] MOV R6,#+5 BL EndAttr CMP R10,#+0 MOVEQ R10,R0 STREQ R10,[SP, #+24] BEQ ??XMLDecode_3 LDR R1,[SP, #+24] STR R0,[R1, #+0] STR R0,[SP, #+24] B ??XMLDecode_3 ??XMLDecode_40: LDR R1,[SP, #+12] ADD R1,R1,#+1 B ??XMLDecode_38 ??XMLDecode_25: LDR R1,[SP, #+32] CMP R1,#+0 LDR R1,[SP, #+0] STREQ R0,[R1, #+0] STRNE R0,[R1, #+4] ??XMLDecode_26: ADD R1,SP,#+44 STR R0,[R1, +R5, LSL #+2] ADD R5,R5,#+1 STR R0,[SP, #+0] MOV R10,#+0 MOV R1,#+1 STR R1,[SP, #+32] ??XMLDecode_24: CMP R7,#+4 CMPNE R7,#+3 BNE ??XMLDecode_41 CMP R5,#+1 BLT ??XMLDecode_42 SUB R5,R5,#+1 ADD R1,SP,#+44 LDR R1,[R1, +R5, LSL #+2] STR R1,[SP, #+0] ??XMLDecode_42: MOV R1,#+0 STR R1,[SP, #+32] ??XMLDecode_41: CMP R10,#+0 BEQ ??XMLDecode_3 MOV R0,R10 BL FreeAttrQueue MOV R10,#+0 B ??XMLDecode_3 ??XMLDecode_43: CMP R11,#+60 BNE ??XMLDecode_44 CMP R8,#+1 BLT ??XMLDecode_45 LDR R0,[SP, #+0] CMP R0,#+0 BEQ ??XMLDecode_45 LDR R1,[SP, #+16] MOV R2,R8 BL AddTextToNode ??XMLDecode_45: MOV R8,#+0 MOV R6,#+2 MOV R7,#+1 B ??XMLDecode_3 ??XMLDecode_44: CMP R7,#+2 BNE ??XMLDecode_3 B ??XMLDecode_2 ??XMLDecode_46: LDR R1,??XMLDecode_47 ;; `?` MOV R2,#+7 ADD R0,R9,R4 SWI +277 CMP R0,#+0 BNE ??XMLDecode_4 ADD R9,R9,#+6 ADD R1,R9,R4 ADD R1,R1,#+1 STR R1,[SP, #+16] MOV R8,#+0 MOV R6,#+13 B ??XMLDecode_11 ??XMLDecode_48: CMP R11,#+93 BNE ??XMLDecode_2 ADD R1,R9,R4 LDRB R1,[R1, #+1] CMP R1,#+93 BNE ??XMLDecode_2 ADD R1,R9,R4 LDRB R1,[R1, #+2] CMP R1,#+62 BNE ??XMLDecode_2 CMP R8,#+1 BLT ??XMLDecode_49 LDR R0,[SP, #+0] CMP R0,#+0 BEQ ??XMLDecode_49 LDR R1,[SP, #+16] MOV R2,R8 BL AddTextToNode ??XMLDecode_49: MOV R8,#+0 MOV R6,#+1 MOV R7,#+1 ADD R9,R9,#+2 B ??XMLDecode_3 DATA ??XMLDecode_47: DC32 `?` CFI EndBlock cfiBlock13 RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "[CDATA[" END // // 1 780 bytes in segment CODE // 8 bytes in segment DATA_C // // 1 752 bytes of CODE memory (+ 28 bytes shared) // 8 bytes of CONST memory // //Errors: none //Warnings: none