From: jesusc Date: Sun, 8 Feb 2004 22:53:30 +0000 (+0000) Subject: Report stack size in .mem file. X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=e79cbda558c73229d9ad127ec17b6bc2c6f65254;p=fw%2Fsdcc Report stack size in .mem file. git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3182 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/ChangeLog b/ChangeLog index 0859f0d1..cdf42439 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2004-02-08 Jesus Calvino-Fraga - * doc/sdccman.lyx: added section 3.14: sdcclib. + * doc/sdccman.lyx: added section 3.1.4: sdcclib. + * as/mcs51/lkmem.c: report the size of the stack in .mem file. 2004-02-08 Frieder Ferlemann diff --git a/as/mcs51/lkmem.c b/as/mcs51/lkmem.c index 0184e396..9e63c868 100644 --- a/as/mcs51/lkmem.c +++ b/as/mcs51/lkmem.c @@ -360,7 +360,7 @@ int summary2(struct area * areap) char buff[128]; int j, toreturn=0; - long int Stack_Start=0; + long int Stack_Start=0, Stack_size; struct area * xp; FILE * of; @@ -441,6 +441,12 @@ int summary2(struct area * areap) break; } } + + for(j=Stack_Start, Stack_size=0; j<256; j++) + { + if((idatamap[j]=='S')||(idatamap[j]==' ')) Stack_size++; + else break; + } xp=areap; while (xp) @@ -457,8 +463,8 @@ int summary2(struct area * areap) /*Report the position of the begining of the stack*/ if(Stack_Start!=256) - fprintf(of, "\n%stack starts at: 0x%02lx (sp set to 0x%02lx)", - rflag ? "16 bit mode initial s" : "S", Stack_Start, Stack_Start-1); + fprintf(of, "\n%stack starts at: 0x%02lx (sp set to 0x%02lx) with %ld bytes available.", + rflag ? "16 bit mode initial s" : "S", Stack_Start, Stack_Start-1, Stack_size); else fprintf(of, "\nI don't have a clue where the stack ended up! Sorry...");