]> git.gag.com Git - fw/sdcc/blobdiff - src/mcs51/main.c
* src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
[fw/sdcc] / src / mcs51 / main.c
index 8027833e64bbdc682c2fe4044e3e5a76723ce4ff..b1676b91ea18d723d6c8503fe254b967bba688d5 100644 (file)
@@ -16,6 +16,17 @@ static char _defaultRules[] =
 #include "peeph.rul"
 };
 
+#define OPTION_STACK_SIZE       "--stack-size"
+
+static OPTION _mcs51_options[] =
+  {
+    { 0, OPTION_STACK_SIZE,  NULL, "Tells the linker to allocate this space for stack"},
+    { 0, "--parms-in-bank1", &options.parms_in_bank1, "use Bank1 for parameter passing"},
+    { 0, "--pack-iram",      NULL, "Tells the linker to pack variables in internal ram (default)"},
+    { 0, "--no-pack-iram",   &options.no_pack_iram, "Tells the linker not to pack variables in internal ram"},
+    { 0, NULL }
+  };
+
 /* list of key words used by msc51 */
 static char *_mcs51_keywords[] =
 {
@@ -113,6 +124,11 @@ _mcs51_parseOptions (int *pargc, char **argv, int *i)
   /* TODO: allow port-specific command line options to specify
    * segment names here.
    */
+  if (!strcmp (argv[*i], OPTION_STACK_SIZE))
+    {
+      options.stack_size = getIntArg(OPTION_STACK_SIZE, argv, i, *pargc);
+      return TRUE;
+    }
   return FALSE;
 }
 
@@ -790,7 +806,7 @@ PORT mcs51_port =
   "_",
   _mcs51_init,
   _mcs51_parseOptions,
-  NULL,
+  _mcs51_options,
   NULL,
   _mcs51_finaliseOptions,
   _mcs51_setDefaultOptions,