xa51, work in progress
[fw/sdcc] / src / SDCCmain.c
index 3dfa2fc71aa0fa0bf7abf653720d790ea8abdac5..1a7c80ce08a083694c80b9281431d45feb94f975 100644 (file)
@@ -211,7 +211,9 @@ optionsTable[] = {
     { 0,    "--all-callee-saves",   &options.all_callee_saves, "callee will always save registers used" },
     { 0,    "--use-accelerator",    &options.useAccelerator,"generate code for  DS390 Arithmetic Accelerator"},
     { 0,    "--stack-probe",               &options.stack_probe,"insert call to function __stack_probe at each function prologue"},
-    { 0,    "--tini-libid",        NULL,"<nnnn> LibraryID used in -mTININative"}
+    { 0,    "--tini-libid",        NULL,"<nnnn> LibraryID used in -mTININative"},
+    { 0,    "--protect-sp-update",  &options.protect_sp_update,"DS390 - will disable interrupts during ESP:SP updates"},
+    { 0,    "--parms-in-bank1",            &options.parms_in_bank1,"MCS51/DS390 - use Bank1 for parameter passing"}
 };
 
 /** Table of all unsupported options and help text to display when one
@@ -1117,7 +1119,8 @@ linkEdit (char **envp)
   WRITE_SEG_LOC (XDATA_NAME, options.xdata_loc);
 
   /* indirect data */
-  WRITE_SEG_LOC (IDATA_NAME, options.idata_loc);
+  if (IDATA_NAME)
+    WRITE_SEG_LOC (IDATA_NAME, options.idata_loc);
 
   /* bit segment start */
   WRITE_SEG_LOC (BIT_NAME, 0);
@@ -1540,11 +1543,11 @@ main (int argc, char **argv, char **envp)
 
   if (srcFileName)
     {
-      preProcess (envp);
 
       initMem ();
 
       port->finaliseOptions ();
+      preProcess (envp);
 
       initSymt ();
       initiCode ();