############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 06/Aug/2008 20:55:44 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\ScreenShot.c # # Command line = D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\ScreenShot.c # # -D NEWSGOLD -D ELKA -D kluchnik -D BCFGGEN # # --preprocess D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\k # # luchnik\List\ -lC D:\Pasha\elf\_MY_PROJECT_\naticq_m # # od2\kluchnik\List\ -o D:\Pasha\elf\_MY_PROJECT_\nati # # cq_mod2\kluchnik\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_mod2\kluchnik\List\ # # ScreenShot.lst # # Object file = D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\kluchnik\Obj\S # # creenShot.r79 # # # # # ############################################################################## D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\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 B200D4E1 LDRH R0,[R4, #+2] \ 00000014 0350A0E1 MOV R5,R3 \ 00000018 01002DE9 PUSH {R0} \ 0000001C B030D4E1 LDRH 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 F0402DE9 PUSH {R4-R7,LR} \ 00000004 0CD04DE2 SUB SP,SP,#+12 19 LockSched(); \ 00000008 460100EF SWI +326 20 short *p=malloc((SCREENSIZE-HSIZE)*sizeof(short)), *pp=RamScreenBuffer(); \ 0000000C 898100EF SWI +33161 \ 00000010 0040A0E1 MOV R4,R0 \ 00000014 888100EF SWI +33160 \ 00000018 0050A0E1 MOV R5,R0 \ 0000001C 888100EF SWI +33160 \ 00000020 950401E0 MUL R1,R5,R4 \ 00000024 1820A0E3 MOV R2,#+24 \ 00000028 920000E0 MUL R0,R2,R0 \ 0000002C 000041E0 SUB R0,R1,R0 \ 00000030 8000A0E1 LSL R0,R0,#+1 \ 00000034 140000EF SWI +20 \ 00000038 0040A0E1 MOV R4,R0 \ 0000003C E08000EF SWI +32992 \ 00000040 0050A0E1 MOV R5,R0 21 pp+=HSIZE; \ 00000044 888100EF SWI +33160 \ 00000048 3010A0E3 MOV R1,#+48 \ 0000004C 915025E0 MLA R5,R1,R0,R5 22 IMGHDR img={ScreenW(),(ScreenH()-YDISP),8,(char *)p}; \ 00000050 DC109FE5 LDR R1,??DrawScreenShot_0 ;; `?` \ 00000054 0D00A0E1 MOV R0,SP \ 00000058 4C0091E8 LDM R1,{R2,R3,R6} \ 0000005C 4C0080E8 STM R0,{R2,R3,R6} \ 00000060 888100EF SWI +33160 \ 00000064 B000CDE1 STRH R0,[SP, #+0] \ 00000068 898100EF SWI +33161 \ 0000006C E810A0E3 MOV R1,#+232 \ 00000070 FF1C81E3 ORR R1,R1,#0xFF00 \ 00000074 000081E0 ADD R0,R1,R0 \ 00000078 B200CDE1 STRH R0,[SP, #+2] \ 0000007C 08408DE5 STR R4,[SP, #+8] 23 24 for(int i=0;i` \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 00000000 DC16 0, 0 \ 00000004 080000000000 DC32 8, 0H \ 0000 Maximum stack usage in bytes: Function CSTACK -------- ------ DrawScreenShot 44 DrwImg2 64 Segment part sizes: Function/Label Bytes -------------- ----- DrwImg2 92 DrawScreenShot 312 ? 12 Others 8 412 bytes in segment CODE 12 bytes in segment DATA_C 404 bytes of CODE memory (+ 8 bytes shared) 12 bytes of CONST memory Errors: none Warnings: none