From: SourceForge.net <no...@so...> - 2006-10-20 15:28:45
|
Feature Requests item #1581366, was opened at 2006-10-20 17:28 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=350599&aid=1581366&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Priority: 5 Submitted By: Frieder Ferlemann (frief) Assigned to: Nobody/Anonymous (nobody) Summary: --model-large, function parameter accessed inefficiently Initial Comment: /* These routines generate unnecessarily large code for --model-large and --xstack (97 byte) The code could have been as compact as for --model-small --model-medium and --stack-auto (46 byte - less than HALF the size!!) */ __sfr __at(0x99) SBUF ; __sbit __at(0x99) TI; #if 1 __sfr16 __at(0xe4e3) SPECIAL_FUNC_I; __sfr32 __at(0xe4e3e2e1) SPECIAL_FUNC_L; #else unsigned int SPECIAL_FUNC_I; unsigned long SPECIAL_FUNC_L; #endif /* putchar routine as in sdcc/support/regression/ports/mcs51/support.c */ void putchar (char c) { while (!TI) ; TI = 0; SBUF = c; } unsigned int do_func_int (unsigned int a) { SPECIAL_FUNC_I = a; // a+1 return SPECIAL_FUNC_I; } /* this was not compiled correctly on SDCC < #4420 */ unsigned long do_func_long (unsigned long a) { SPECIAL_FUNC_L = a; // a+1 return SPECIAL_FUNC_L; } ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=350599&aid=1581366&group_id=599 |