DEBUG-NAME - 'B'
POINTER-TYPE - POINTER
*/
- istack = allocMap (0, 0, 0, 0, 0, 0, options.stack_loc, ISTACK_NAME, 'B', POINTER);
+ if (ISTACK_NAME) {
+ istack = allocMap (0, 0, 0, 0, 0, 0, options.stack_loc,
+ ISTACK_NAME, 'B', POINTER);
+ } else {
+ istack=NULL;
+ }
/* code segment ;
SFRSPACE - NO
DEBUG-NAME - 'E'
POINTER-TYPE - POINTER
*/
- overlay = allocMap (0, 0, 0, 1, 0, 0, options.data_loc, DATA_NAME, 'E', POINTER);
+ if (OVERLAY_NAME) {
+ overlay = allocMap (0, 0, 0, 1, 0, 0, options.data_loc, DATA_NAME, 'E', POINTER);
+ } else {
+ overlay = NULL;
+ }
/* Xternal Data segment -
SFRSPACE - NO
DEBUG-NAME - 'G'
POINTER-TYPE - IPOINTER
*/
- idata = allocMap (0, 0, 0, 0, 0, 0, options.idata_loc, IDATA_NAME, 'G', IPOINTER);
+ if (IDATA_NAME) {
+ idata = allocMap (0, 0, 0, 0, 0, 0, options.idata_loc,
+ IDATA_NAME, 'G', IPOINTER);
+ } else {
+ idata=NULL;
+ }
/* Static segment (code for variables );
SFRSPACE - NO
if (SPEC_SCLS (sym->etype) == S_XDATA)
{
- SPEC_OCLS (sym->etype) = xdata;
// should we move this to the initialized data segment?
if (port->genXINIT &&
sym->ival && (sym->level==0) && !SPEC_ABSA(sym->etype)) {
SPEC_OCLS(sym->etype)=xidata;
- addSet(&xidata->syms, sym);
+ } else {
+ SPEC_OCLS (sym->etype) = xdata;
}
allocIntoSeg (sym);
return;
/* unmark is myparm */
lval->sym->ismyparm = 0;
- /* if on stack then depending on which stack */
/* delete it from the symbol table */
deleteSym (SymbolTab, lval->sym, lval->sym->name);
if (!lval->sym->isref)
{
- lval->sym->allocreq = 1;
+ lval->sym->allocreq = 0;
werror (W_NO_REFERENCE, currFunc->name,
"function argument", lval->sym->name);
}
for (sym = csym; sym; sym = sym->next)
{
- if (sym->_isparm)
+ if (sym->_isparm)
continue;
/* if it is on the stack */
void
doOverlays (eBBlock ** ebbs, int count)
{
+ if (!overlay) {
+ return;
+ }
+
/* check if the parameters and local variables
of this function can be put in the overlay segment
This check is essentially to see if the function
printAllocInfoSeg (idata, func, of);
printAllocInfoSeg (sfr, func, of);
printAllocInfoSeg (sfrbit, func, of);
+ fprintf (of, ";------------------------------------------------------------\n");
}