############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 29/Jun/2008 17:09:04 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\Pasha\elf\_MY_PROJECT_\naticq_mod\ScreenShot.c # # Command line = D:\Pasha\elf\_MY_PROJECT_\naticq_mod\ScreenShot.c # # -D NEWSGOLD -D UIN_WRITE -D ole64 --preprocess # # D:\Pasha\elf\_MY_PROJECT_\naticq_mod\ole64\List\ # # -lC D:\Pasha\elf\_MY_PROJECT_\naticq_mod\ole64\List\ # # -o D:\Pasha\elf\_MY_PROJECT_\naticq_mod\ole64\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_\naticq_mod\ole64\List\Scre # # enShot.lst # # Object file = D:\Pasha\elf\_MY_PROJECT_\naticq_mod\ole64\Obj\Scree # # nShot.r79 # # # # # ############################################################################## D:\Pasha\elf\_MY_PROJECT_\naticq_mod\ScreenShot.c 1 #include "..\inc\swilib.h" 2 #define SCREENSIZE ScreenH()*ScreenW() 3 #define HSIZE YDISP*ScreenW() 4 5 \ In segment CODE, align 4, keep-with-next 6 DrwImg2(IMGHDR *img, int x, int y, char *pen, char *brush) 7 { \ DrwImg2: \ 00000000 70402DE9 PUSH {R4-R6,LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 \ 00000008 3C609DE5 LDR R6,[SP, #+60] \ 0000000C 0040A0E1 MOV R4,R0 8 RECT rc; 9 DRWOBJ drwobj; 10 StoreXYWHtoRECT(&rc,x,y,img->w,img->h); \ 00000010 0100D4E5 LDRB R0,[R4, #+1] \ 00000014 0350A0E1 MOV R5,R3 \ 00000018 01002DE9 PUSH {R0} \ 0000001C 0030D4E5 LDRB R3,[R4, #+0] \ 00000020 04008DE2 ADD R0,SP,#+4 \ 00000024 330100EF SWI +307 11 SetPropTo_Obj5(&drwobj,&rc,0,img); \ 00000028 0430A0E1 MOV R3,R4 \ 0000002C 0020A0E3 MOV R2,#+0 \ 00000030 04108DE2 ADD R1,SP,#+4 \ 00000034 0C008DE2 ADD R0,SP,#+12 \ 00000038 510100EF SWI +337 12 SetColor(&drwobj,pen,brush); \ 0000003C 0620A0E1 MOV R2,R6 \ 00000040 0510A0E1 MOV R1,R5 \ 00000044 0C008DE2 ADD R0,SP,#+12 \ 00000048 4B0100EF SWI +331 13 DrawObject(&drwobj); \ 0000004C 0C008DE2 ADD R0,SP,#+12 \ 00000050 2A0100EF SWI +298 14 } \ 00000054 30D08DE2 ADD SP,SP,#+48 \ 00000058 7080BDE8 POP {R4-R6,PC} ;; return 15 16 \ In segment CODE, align 4, keep-with-next 17 void DrawScreenShot() 18 { \ DrawScreenShot: \ 00000000 F0412DE9 PUSH {R4-R8,LR} \ 00000004 08D04DE2 SUB SP,SP,#+8 19 LockSched(); 20 short *p=malloc((SCREENSIZE-HSIZE)*sizeof(short)), *pp=RamScreenBuffer(); 21 pp+=HSIZE; 22 IMGHDR img={ScreenW(),(ScreenH()-YDISP),8,(char *)p}; 23 24 for(int i=0;i` \ 00000044 0D00A0E1 MOV R0,SP \ 00000048 0C0091E8 LDM R1,{R2,R3} \ 0000004C 0C0080E8 STM R0,{R2,R3} \ 00000050 888100EF SWI +33160 \ 00000054 0000CDE5 STRB R0,[SP, #+0] \ 00000058 898100EF SWI +33161 \ 0000005C 0100CDE5 STRB R0,[SP, #+1] \ 00000060 04408DE5 STR R4,[SP, #+4] \ 00000064 020000EA B ??DrawScreenShot_1 25 *p++=*pp++; \ ??DrawScreenShot_2: \ 00000068 ........ LDRSH R0,[R5], #+2 \ 0000006C 016086E2 ADD R6,R6,#+1 \ 00000070 ........ STRH R0,[R4], #+2 \ ??DrawScreenShot_1: \ 00000074 898100EF SWI +33161 \ 00000078 0070A0E1 MOV R7,R0 \ 0000007C 888100EF SWI +33160 \ 00000080 0080A0E1 MOV R8,R0 \ 00000084 888100EF SWI +33160 \ 00000088 980700E0 MUL R0,R8,R7 \ 0000008C 000056E1 CMP R6,R0 \ 00000090 F4FFFFBA BLT ??DrawScreenShot_2 26 void *canvasdata=BuildCanvas(); \ 00000094 F18000EF SWI +33009 \ 00000098 0040A0E1 MOV R4,R0 27 DrawCanvas(canvasdata, 0, 0, ScreenW()-1,ScreenH()-1, 1 ); \ 0000009C 898100EF SWI +33161 \ 000000A0 0050A0E1 MOV R5,R0 \ 000000A4 888100EF SWI +33160 \ 000000A8 0110A0E3 MOV R1,#+1 \ 000000AC 02002DE9 PUSH {R1} \ 000000B0 013040E2 SUB R3,R0,#+1 \ 000000B4 0020A0E3 MOV R2,#+0 \ 000000B8 0400A0E1 MOV R0,R4 \ 000000BC 011045E2 SUB R1,R5,#+1 \ 000000C0 02002DE9 PUSH {R1} \ 000000C4 0010A0E3 MOV R1,#+0 \ 000000C8 250000EF SWI +37 28 DrwImg2(&img, 0, YDISP, GetPaletteAdrByColorIndex(0),GetPaletteAdrByColorIndex(2)); \ 000000CC 0200A0E3 MOV R0,#+2 \ 000000D0 2E0100EF SWI +302 \ 000000D4 0040A0E1 MOV R4,R0 \ 000000D8 0000A0E3 MOV R0,#+0 \ 000000DC 2E0100EF SWI +302 \ 000000E0 0030A0E1 MOV R3,R0 \ 000000E4 10002DE9 PUSH {R4} \ 000000E8 0020A0E3 MOV R2,#+0 \ 000000EC 0210A0E1 MOV R1,R2 \ 000000F0 0C008DE2 ADD R0,SP,#+12 \ 000000F4 ........ BL DrwImg2 29 mfree(img.bitmap); \ 000000F8 10009DE5 LDR R0,[SP, #+16] \ 000000FC 150000EF SWI +21 30 UnlockSched(); \ 00000100 470100EF SWI +327 31 } \ 00000104 14D08DE2 ADD SP,SP,#+20 \ 00000108 F081BDE8 POP {R4-R8,PC} ;; return \ ??DrawScreenShot_0: \ 0000010C ........ DC32 `?` \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 0000 DC8 0, 0 \ 00000002 0800 DC16 8 \ 00000004 00000000 DC32 0H Maximum stack usage in bytes: Function CSTACK -------- ------ DrawScreenShot 44 DrwImg2 64 Segment part sizes: Function/Label Bytes -------------- ----- DrwImg2 92 DrawScreenShot 272 ? 8 Others 8 372 bytes in segment CODE 8 bytes in segment DATA_C 364 bytes of CODE memory (+ 8 bytes shared) 8 bytes of CONST memory Errors: none Warnings: none