{ 0, "--cyclomatic", &options.cyclomatic, NULL },
{ 0, "--nooverlay", &options.noOverlay, NULL },
{ 0, "--main-return", &options.mainreturn, "Issue a return after main()" },
+ { 0, "--xram-movc", &options.xram_movc, "Use movc instead of movx to read xram (xdata)" },
{ 0, "--no-peep", &options.nopeep, "Disable the peephole assembly file optimisation" },
{ 0, "--no-reg-params", &options.noRegParams, "On some ports, disable passing some parameters in registers" },
{ 0, "--peep-asm", &options.asmpeep, NULL },
{ 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
/* copy the file name into the buffer */
strcpy (buffer, s);
- /* get rid of the "." */
- strtok (buffer, ".");
+ /* get rid of the "."-extension */
+
+ /* is there a dot at all? */
+ if (strchr (buffer, '.') &&
+ /* is the dot in the filename, not in the path? */
+ (strrchr (buffer, '/' ) < strrchr (buffer, '.') ||
+ strrchr (buffer, '\\') < strrchr (buffer, '.')))
+ *strrchr (buffer, '.') = '\0';
+
srcFileName = Safe_alloc ( strlen (buffer) + 1);
strcpy (srcFileName, buffer);
if (srcFileName)
{
- preProcess (envp);
initMem ();
port->finaliseOptions ();
+ preProcess (envp);
initSymt ();
initiCode ();