* src/port.h: use const poiters to strings
authorborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 19 Apr 2007 20:10:32 +0000 (20:10 +0000)
committerborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 19 Apr 2007 20:10:32 +0000 (20:10 +0000)
* src/SDCCargs.h: declared getStringArg() and getIntArg()
* src/pic16/main.c: include SDCCargs.h
* src/SDCCglobl.h: code_seg and const_seg are not pointers to
  const char, since the strings are dynamically allocated
* src/SDCCmain.c: options.code_seg and options.const_seg are
  dynamically allocated; check port specific command line options
  before the general ones
* src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4758 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCCargs.h
src/SDCCglobl.h
src/SDCCmain.c
src/pic16/main.c
src/port.h
src/z80/main.c

index 9a12ceb03a71387afb16acd31cc7c266a3a8f62b..acee9ddd92766addcfebea1c50a373b345da58a4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2007-04-19 Borut Razem <borut.razem AT siol.net>
+
+       * src/port.h: use const poiters to strings
+       * src/SDCCargs.h: declared getStringArg() and getIntArg()
+       * src/pic16/main.c: include SDCCargs.h
+       * src/SDCCglobl.h: code_seg and const_seg are not pointers to
+         const char, since the strings are dynamically allocated
+       * src/SDCCmain.c: options.code_seg and options.const_seg are
+         dynamically allocated; check port specific command line options
+         before the general ones
+       * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
+
 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * device/include/ds400rom.h,
index 4208327070afec0e3f17d7a988d118a61c809f26..1a379101356107fe6326e9d21e3a7b90c685decc 100644 (file)
@@ -49,4 +49,7 @@ typedef struct {
     const char *help;
 } OPTION;
 
+char *getStringArg(const char *szStart, char **argv, int *pi, int argc);
+int getIntArg(const char *szStart, char **argv, int *pi, int argc);
+
 #endif
index a85be4b76d140dc9234109f314293eae604c89ec..1df7886e35036b4dc9cd874ae20a7380340364ce 100644 (file)
@@ -288,8 +288,8 @@ struct options
     int std_sdcc;               /* enable SDCC extensions to C */
     int dollars_in_ident;       /* zero means dollar signs are punctuation */
     int unsigned_char;          /* use unsigned for char without signed/unsigned modifier */
-    const char *code_seg;       /* segment name to use instead of CSEG */
-    const char *const_seg;      /* segment name to use instead of CONST */
+    char *code_seg;             /* segment name to use instead of CSEG */
+    char *const_seg;            /* segment name to use instead of CONST */
     /* sets */
     set *calleeSavesSet;        /* list of functions using callee save */
     set *excludeRegsSet;        /* registers excluded from saving */
index d02949164751f8d919f5c0245ee2c1f6d00e7493..9836692878d194fa4c5de6b0238d25b4fe6046b3 100644 (file)
@@ -585,8 +585,8 @@ setDefaultOptions (void)
   options.shortis8bits = 0;
   options.std_sdcc = 1;           /* enable SDCC language extensions */
   options.std_c99 = 0;            /* default to C89 until more C99 support */
-  options.code_seg = CODE_NAME;   /* default to CSEG for generated code */
-  options.const_seg = CONST_NAME; /* default to CONST for generated code */
+  options.code_seg = CODE_NAME ? Safe_strdup(CODE_NAME) : NULL; /* default to CSEG for generated code */
+  options.const_seg = CONST_NAME ? Safe_strdup(CONST_NAME) : NULL; /* default to CONST for generated code */
 
   options.stack10bit=0;
 
@@ -888,6 +888,12 @@ parseCmdLine (int argc, char **argv)
       if (i >= argc)
         break;
 
+      /* check port specific options before general ones */
+      if (port->parseOption (&argc, argv, &i) == TRUE)
+        {
+          continue;
+        }
+
       if (tryHandleUnsupportedOpt(argv, &i) == TRUE)
         {
           continue;
@@ -1157,6 +1163,7 @@ parseCmdLine (int argc, char **argv)
 
               dbuf_init (&segname, 16);
               dbuf_printf (&segname, "%-8s(CODE)", getStringArg (OPTION_CODE_SEG, argv, &i, argc));
+              if (options.code_seg) Safe_free(options.code_seg);
               options.code_seg = dbuf_detach (&segname);
               continue;
             }
@@ -1167,19 +1174,13 @@ parseCmdLine (int argc, char **argv)
 
               dbuf_init (&segname, 16);
               dbuf_printf (&segname, "%-8s(CODE)", getStringArg (OPTION_CONST_SEG, argv, &i, argc));
+              if (options.const_seg) Safe_free(options.const_seg);
               options.const_seg = dbuf_detach (&segname);
               continue;
             }
 
-          if (!port->parseOption (&argc, argv, &i))
-            {
-              werror (W_UNKNOWN_OPTION, argv[i]);
-              continue;
-            }
-          else
-            {
-              continue;
-            }
+          werror (W_UNKNOWN_OPTION, argv[i]);
+          continue;
         }
 
       /* if preceded by  '-' then option */
@@ -1342,23 +1343,19 @@ parseCmdLine (int argc, char **argv)
               break;
 
             default:
-              if (!port->parseOption (&argc, argv, &i))
-                werror (W_UNKNOWN_OPTION, argv[i]);
+              werror (W_UNKNOWN_OPTION, argv[i]);
             }
           continue;
         }
 
-      if (!port->parseOption (&argc, argv, &i))
+      /* no option must be a filename */
+      if (options.c1mode)
         {
-          /* no option must be a filename */
-          if (options.c1mode)
-            {
-              werror (W_NO_FILE_ARG_IN_C1, argv[i]);
-            }
-          else
-            {
-              processFile (argv[i]);
-            }
+          werror (W_NO_FILE_ARG_IN_C1, argv[i]);
+        }
+      else
+        {
+          processFile (argv[i]);
         }
     }
 
index 5ee5c9aff8e1d8f7fd8b6b94ba17ec7a5a0d809e..933511cb629fbbac9ba7daa286dc84a7ea3046cb 100644 (file)
@@ -31,6 +31,7 @@
 #include "SDCCutil.h"
 #include "glue.h"
 #include "pcode.h"
+#include "SDCCargs.h"
 #include "dbuf_string.h"
 
 
@@ -589,9 +590,6 @@ OPTION pic16_optionsTable[]= {
 
 #define ISOPT(str)     !strncmp(argv[ *i ], str, strlen(str) )
 
-extern char *getStringArg(const char *,  char **, int *, int);
-extern int getIntArg(const char *, char **, int *, int);
-
 static bool
 _pic16_parseOptions (int *pargc, char **argv, int *i)
 {
index a52bed1b806cae20954ab7262787db0397706b7f..5dfc133509a78caf308b596bdabef290caec16ba 100644 (file)
@@ -67,10 +67,10 @@ typedef struct
 /** Unique id for this target */
     const int id;
 /** Target name used for -m */
-    const char *target;
+    const char * const target;
 
 /** Target name string, used for --help */
-    const char *target_name;
+    const char * const target_name;
 
 /** Specific processor for the given target family. specified by -p */
     char *processor;
@@ -167,25 +167,30 @@ typedef struct
 /** memory regions related stuff */
     struct
       {
-        const char *xstack_name;
-        const char *istack_name;
+        const char * const xstack_name;
+        const char * const istack_name;
+        /*
+         * The following 2 items can't be const pointers
+         * due to ugly implementation in z80 target;
+         * this should be fixed in src/z80/main.c (borutr)
+         */
         const char *code_name;
         const char *data_name;
-        const char *idata_name;
-        const char *pdata_name;
-        const char *xdata_name;
-        const char *bit_name;
-        const char *reg_name;
-        const char *static_name;
-        const char *overlay_name;
-        const char *post_static_name;
-        const char *home_name;
-        const char *xidata_name; // initialized xdata
-        const char *xinit_name; // a code copy of xidata
-        const char *const_name; // const data (code or not)
-        const char *cabs_name; // const absolute data (code or not)
-       const char *xabs_name; // absolute xdata/pdata
-       const char *iabs_name; // absolute idata/data
+        const char * const idata_name;
+        const char * const pdata_name;
+        const char * const xdata_name;
+        const char * const bit_name;
+        const char * const reg_name;
+        const char * const static_name;
+        const char * const overlay_name;
+        const char * const post_static_name;
+        const char * const home_name;
+        const char * const xidata_name; // initialized xdata
+        const char * const xinit_name; // a code copy of xidata
+        const char * const const_name; // const data (code or not)
+        const char * const cabs_name; // const absolute data (code or not)
+        const char * const xabs_name; // absolute xdata/pdata
+        const char * const iabs_name; // absolute idata/data
         struct memmap *default_local_map; // default location for auto vars
         struct memmap *default_globl_map; // default location for globl vars
         int code_ro;            /* code space read-only 1=yes */
index 83025434ac69bad7b1373f3d0f7b99c8c701978e..55e9cd51621ff4329e2ef7732169e73f5cd0ec62 100644 (file)
 #include "MySystem.h"
 #include "BuildCmd.h"
 #include "SDCCutil.h"
+#include "SDCCargs.h"
 #include "dbuf_string.h"
 
+#define OPTION_BO             "-bo"
+#define OPTION_BA             "-ba"
+#define OPTION_CODE_SEG       "--codeseg"
+#define OPTION_CONST_SEG      "--constseg"
+#define OPTION_CALLE_SAVES_BC "--calle-saves-bc"
+#define OPTION_PORTMODE       "--portmode="
+#define OPTION_ASM            "--asm="
+
+
 static char _z80_defaultRules[] =
 {
 #include "peeph.rul"
@@ -43,17 +53,24 @@ static char _gbz80_defaultRules[] =
 
 Z80_OPTS z80_opts;
 
-static OPTION _z80_options[] = 
+static OPTION _z80_options[] =
   {
-    {  0,   "--callee-saves-bc", &z80_opts.calleeSavesBC, "Force a called function to always save BC" },
-    {  0,   "--portmode=",       NULL,                    "Determine PORT I/O mode (z80/z180)" },
-    {  0, NULL }
+    { 0, OPTION_CALLE_SAVES_BC, &z80_opts.calleeSavesBC, "Force a called function to always save BC" },
+    { 0, OPTION_PORTMODE,       NULL,                    "Determine PORT I/O mode (z80/z180)" },
+    { 0, OPTION_ASM,            NULL,                    "Define assembler name (rgbds/asxxxx/isas/z80asm)" },
+    { 0, OPTION_CODE_SEG,       NULL,                    "<name> use this name for the code segment" },
+    { 0, OPTION_CONST_SEG,      NULL,                    "<name> use this name for the const segment" },
+    { 0, NULL }
   };
 
 static OPTION _gbz80_options[] = 
   {
-    {  0,   "--callee-saves-bc", &z80_opts.calleeSavesBC, "Force a called function to always save BC" },
-    {  0, NULL }
+    { 0, OPTION_BO,             NULL,                    "<num> use code bank <num>" },
+    { 0, OPTION_BA,             NULL,                    "<num> use data bank <num>" },
+    { 0, OPTION_CALLE_SAVES_BC, &z80_opts.calleeSavesBC, "Force a called function to always save BC" },
+    { 0, OPTION_CODE_SEG,       NULL,                    "<name> use this name for the code segment"  },
+    { 0, OPTION_CONST_SEG,      NULL,                    "<name> use this name for the const segment" },
+    { 0, NULL }
   };
 
 typedef enum
@@ -97,7 +114,7 @@ static builtins _z80_builtins[] = {
     { "__builtin_memcpy", "cg*", 3, {"cg*", "cg*", "ui" } },
   */
     { NULL , NULL,0, {NULL}}
-};    
+};
 
 static void
 _z80_init (void)
@@ -121,7 +138,7 @@ _reset_regparm (void)
 static int
 _reg_parm (sym_link * l, bool reentrant)
 {
-  if (options.noRegParams) 
+  if (options.noRegParams)
     {
       return FALSE;
     }
@@ -141,7 +158,9 @@ _reg_parm (sym_link * l, bool reentrant)
 
 enum {
   P_BANK = 1,
-  P_PORTMODE
+  P_PORTMODE,
+  P_CODESEG,
+  P_CONSTSEG,
 };
 
 static int
@@ -157,7 +176,9 @@ do_pragma(int id, const char *name, const char *cp)
     {
     case P_BANK:
       {
-        char buffer[128];
+        struct dbuf_s buffer;
+
+        dbuf_init(&buffer, 128);
 
         cp = get_pragma_token(cp, &token);
 
@@ -170,43 +191,45 @@ do_pragma(int id, const char *name, const char *cp)
           case TOKEN_INT:
             switch (_G.asmType)
               {
-             case ASM_TYPE_ASXXXX:
-               sprintf(buffer, "CODE_%d", token.val.int_val);
-               break;
+              case ASM_TYPE_ASXXXX:
+                dbuf_printf (&buffer, "CODE_%d", token.val.int_val);
+                break;
 
               case ASM_TYPE_RGBDS:
-               sprintf(buffer, "CODE,BANK[%d]", token.val.int_val);
-               break;
+                dbuf_printf (&buffer, "CODE,BANK[%d]", token.val.int_val);
+                break;
 
-             case ASM_TYPE_ISAS:
-               /* PENDING: what to use for ISAS? */
-               sprintf (buffer, "CODE,BANK(%d)", token.val.int_val);
-               break;
+              case ASM_TYPE_ISAS:
+                /* PENDING: what to use for ISAS? */
+                dbuf_printf (&buffer, "CODE,BANK(%d)", token.val.int_val);
+                break;
 
-             default:
-               wassert (0);
+              default:
+                wassert (0);
               }
             break;
 
           default:
             {
-              const char *str = get_pragma_string(&token);
+              const char *str = get_pragma_string (&token);
 
-              strncpyz(buffer, (0 == strcmp("BASE", str)) ? "HOME" : str, sizeof buffer);
+              dbuf_append_str (&buffer, (0 == strcmp("BASE", str)) ? "HOME" : str);
             }
             break;
           }
 
-        cp = get_pragma_token(cp, &token);
+        cp = get_pragma_token (cp, &token);
         if (TOKEN_EOL != token.type)
           {
             err = 1;
             break;
           }
 
-        gbz80_port.mem.code_name = Safe_strdup (buffer);
+        dbuf_c_str (&buffer);
+        /* ugly, see comment in src/port.h (borutr) */
+        gbz80_port.mem.code_name = dbuf_detach (&buffer);
         code->sname = gbz80_port.mem.code_name;
-        options.code_seg = gbz80_port.mem.code_name;
+        options.code_seg = (char *)gbz80_port.mem.code_name;
       }
       break;
 
@@ -214,7 +237,7 @@ do_pragma(int id, const char *name, const char *cp)
       { /*.p.t.20030716 - adding pragma to manipulate z80 i/o port addressing modes */
         const char *str;
 
-        cp = get_pragma_token(cp, &token);
+        cp = get_pragma_token (cp, &token);
 
         if (TOKEN_EOL == token.type)
           {
@@ -222,9 +245,9 @@ do_pragma(int id, const char *name, const char *cp)
             break;
           }
 
-        str = get_pragma_string(&token);
+        str = get_pragma_string (&token);
 
-        cp = get_pragma_token(cp, &token);
+        cp = get_pragma_token (cp, &token);
         if (TOKEN_EOL != token.type)
           {
             err = 1;
@@ -244,6 +267,41 @@ do_pragma(int id, const char *name, const char *cp)
       }
       break;
 
+    case P_CODESEG:
+    case P_CONSTSEG:
+      {
+        char *segname;
+
+        cp = get_pragma_token (cp, &token);
+        if (token.type == TOKEN_EOL)
+          {
+            err = 1;
+            break;
+          }
+
+        segname = Safe_strdup (get_pragma_string(&token));
+
+        cp = get_pragma_token (cp, &token);
+        if (token.type != TOKEN_EOL)
+          {
+            Safe_free (segname);
+            err = 1;
+            break;
+          }
+
+        if (id == P_CODESEG)
+          {
+            if (options.code_seg) Safe_free(options.code_seg);
+            options.code_seg = segname;
+          }
+        else
+          {
+            if (options.const_seg) Safe_free(options.const_seg);
+            options.const_seg = segname;
+          }
+      }
+      break;
+
     default:
       processed = 0;
       break;
@@ -261,6 +319,8 @@ do_pragma(int id, const char *name, const char *cp)
 static struct pragma_s pragma_tbl[] = {
   { "bank",     P_BANK,     0, do_pragma },
   { "portmode", P_PORTMODE, 0, do_pragma },
+  { "codeseg",  P_CODESEG,  0, do_pragma },
+  { "constseg", P_CONSTSEG, 0, do_pragma },
   { NULL,       0,          0, NULL },
   };
 
@@ -321,71 +381,98 @@ _parseOptions (int *pargc, char **argv, int *i)
 {
   if (argv[*i][0] == '-')
     {
-      if (argv[*i][1] == 'b' && IS_GB)
-       {
-         int bank = atoi (argv[*i] + 3);
-         char buffer[128];
-         switch (argv[*i][2])
-           {
-           case 'o':
-             /* ROM bank */
-             sprintf (buffer, "CODE_%u", bank);
-             gbz80_port.mem.code_name = Safe_strdup (buffer);
-             options.code_seg = gbz80_port.mem.code_name;
-             return TRUE;
-           case 'a':
-             /* RAM bank */
-             sprintf (buffer, "DATA_%u", bank);
-             gbz80_port.mem.data_name = Safe_strdup (buffer);
-             return TRUE;
-           }
-       }
-      else if (!strncmp (argv[*i], "--asm=", 6))
-       {
-         if (!strcmp (argv[*i], "--asm=rgbds"))
-           {
-             asm_addTree (&_rgbds_gb);
-             gbz80_port.assembler.cmd = _gbz80_rgbasmCmd;
-             gbz80_port.linker.cmd = _gbz80_rgblinkCmd;
-             gbz80_port.linker.do_link = _gbz80_rgblink;
-             _G.asmType = ASM_TYPE_RGBDS;
-             return TRUE;
-           }
-         else if (!strcmp (argv[*i], "--asm=asxxxx"))
-           {
-             _G.asmType = ASM_TYPE_ASXXXX;
-             return TRUE;
-           }
-         else if (!strcmp (argv[*i], "--asm=isas"))
-           {
-             asm_addTree (&_isas_gb);
-             /* Munge the function prefix */
-             gbz80_port.fun_prefix = "";
-             _G.asmType = ASM_TYPE_ISAS;
-             return TRUE;
-           }
-         else if (!strcmp (argv[*i], "--asm=z80asm"))
-           {
+      if (IS_GB)
+        {
+          if (!strncmp (argv[*i], OPTION_BO, sizeof (OPTION_BO) - 1))
+            {
+              /* ROM bank */
+              int bank = getIntArg (OPTION_BO, argv, i, *pargc);
+              struct dbuf_s buffer;
+
+              dbuf_init (&buffer, 16);
+              dbuf_printf (&buffer, "CODE_%u", bank);
+              dbuf_c_str (&buffer);
+              /* ugly, see comment in src/port.h (borutr) */
+              gbz80_port.mem.code_name = dbuf_detach (&buffer);
+              options.code_seg = (char *)gbz80_port.mem.code_name;
+              return TRUE;
+            }
+          else if (!strncmp (argv[*i], OPTION_BA, sizeof (OPTION_BA) - 1))
+            {
+              /* RAM bank */
+              int bank = getIntArg (OPTION_BA, argv, i, *pargc);
+              struct dbuf_s buffer;
+
+              dbuf_init (&buffer, 16);
+              dbuf_printf (&buffer, "DATA_%u", bank);
+              dbuf_c_str (&buffer);
+              /* ugly, see comment in src/port.h (borutr) */
+              gbz80_port.mem.data_name = dbuf_detach (&buffer);
+              return TRUE;
+            }
+        }
+      else if (!strncmp (argv[*i], OPTION_ASM, sizeof (OPTION_ASM) - 1))
+        {
+          char *asm = getStringArg (OPTION_ASM, argv, i, *pargc);
+
+          if (!strcmp (asm, "rgbds"))
+            {
+              asm_addTree (&_rgbds_gb);
+              gbz80_port.assembler.cmd = _gbz80_rgbasmCmd;
+              gbz80_port.linker.cmd = _gbz80_rgblinkCmd;
+              gbz80_port.linker.do_link = _gbz80_rgblink;
+              _G.asmType = ASM_TYPE_RGBDS;
+              return TRUE;
+            }
+          else if (!strcmp (asm, "asxxxx"))
+            {
+              _G.asmType = ASM_TYPE_ASXXXX;
+              return TRUE;
+            }
+          else if (!strcmp (asm, "isas"))
+            {
+              asm_addTree (&_isas_gb);
+              /* Munge the function prefix */
+              gbz80_port.fun_prefix = "";
+              _G.asmType = ASM_TYPE_ISAS;
+              return TRUE;
+            }
+          else if (!strcmp (asm, "z80asm"))
+            {
               port->assembler.externGlobal = TRUE;
-             asm_addTree (&_z80asm_z80);
-             _G.asmType = ASM_TYPE_ISAS;
-             return TRUE;
-           }
-       }
-      else if (!strncmp (argv[*i], "--portmode=", 11))
-       {
-         if (!strcmp (argv[*i], "--portmode=z80"))
-           {
-             z80_opts.port_mode =  80;
-             return TRUE;
-           }
-         else if (!strcmp (argv[*i], "--portmode=z180"))
-           {
-             z80_opts.port_mode =  180;
-             return TRUE;
-           }
-        }
-    }
+              asm_addTree (&_z80asm_z80);
+              _G.asmType = ASM_TYPE_ISAS;
+              return TRUE;
+            }
+        }
+      else if (!strncmp (argv[*i], OPTION_PORTMODE, sizeof (OPTION_PORTMODE) - 1))
+        {
+           char *portmode = getStringArg (OPTION_ASM, argv, i, *pargc);
+
+          if (!strcmp (portmode, "z80"))
+            {
+              z80_opts.port_mode = 80;
+              return TRUE;
+            }
+          else if (!strcmp (portmode, "z180"))
+            {
+              z80_opts.port_mode = 180;
+              return TRUE;
+            }
+        }
+      else if (!strcmp (argv[*i], OPTION_CODE_SEG))
+        {
+          if (options.code_seg) Safe_free(options.code_seg);
+          options.code_seg = Safe_strdup(getStringArg (OPTION_CODE_SEG, argv, i, *pargc));
+          return TRUE;
+        }
+      else if (!strcmp (argv[*i], OPTION_CONST_SEG))
+        {
+          if (options.const_seg) Safe_free(options.const_seg);
+          options.const_seg = Safe_strdup(getStringArg (OPTION_CONST_SEG, argv, i, *pargc));
+          return TRUE;
+        }
+  }
   return FALSE;
 }
 
@@ -433,7 +520,7 @@ _setValues(void)
           SNPRINTF(buf, len, "\"%s\"", path);
           setMainValue("z80crt0", buf);
           Safe_free(buf);
-        } 
+        }
     }
   else
     {
@@ -628,8 +715,8 @@ PORT z80_port =
 {
   TARGET_ID_Z80,
   "z80",
-  "Zilog Z80",                 /* Target name */
-  NULL,                                /* Processor name */
+  "Zilog Z80",                  /* Target name */
+  NULL,                         /* Processor name */
   {
     glue,
     FALSE,
@@ -639,8 +726,8 @@ PORT z80_port =
   {
     NULL,
     ASMCMD,
-    "-plosgff",                        /* Options with debug */
-    "-plosgff",                        /* Options without debug */
+    "-plosgff",                 /* Options with debug */
+    "-plosgff",                 /* Options without debug */
     0,
     ".asm"
   },
@@ -655,11 +742,11 @@ PORT z80_port =
     _z80_defaultRules
   },
   {
-       /* Sizes: char, short, int, long, ptr, fptr, gptr, bit, float, max */
+        /* Sizes: char, short, int, long, ptr, fptr, gptr, bit, float, max */
     1, 2, 2, 4, 2, 2, 2, 1, 4, 4
   },
   /* tags for generic pointers */
-  { 0x00, 0x40, 0x60, 0x80 },          /* far, near, xstack, code */
+  { 0x00, 0x40, 0x60, 0x80 },           /* far, near, xstack, code */
   {
     "XSEG",
     "STACK",
@@ -715,32 +802,32 @@ PORT z80_port =
   z80_assignRegisters,
   _getRegName,
   _keywords,
-  0,                           /* no assembler preamble */
-  NULL,                                /* no genAssemblerEnd */
-  0,                           /* no local IVT generation code */
+  0,                            /* no assembler preamble */
+  NULL,                         /* no genAssemblerEnd */
+  0,                            /* no local IVT generation code */
   0,                            /* no genXINIT code */
-  NULL,                        /* genInitStartup */
+  NULL,                         /* genInitStartup */
   _reset_regparm,
   _reg_parm,
   _process_pragma,
   _mangleSupportFunctionName,
   _hasNativeMulFor,
-  hasExtBitOp,                 /* hasExtBitOp */
-  oclsExpense,                 /* oclsExpense */
+  hasExtBitOp,                  /* hasExtBitOp */
+  oclsExpense,                  /* oclsExpense */
   TRUE,
-  TRUE,                                /* little endian */
-  0,                           /* leave lt */
-  0,                           /* leave gt */
-  1,                           /* transform <= to ! > */
-  1,                           /* transform >= to ! < */
-  1,                           /* transform != to !(a == b) */
-  0,                           /* leave == */
-  TRUE,                         /* Array initializer support. */       
+  TRUE,                         /* little endian */
+  0,                            /* leave lt */
+  0,                            /* leave gt */
+  1,                            /* transform <= to ! > */
+  1,                            /* transform >= to ! < */
+  1,                            /* transform != to !(a == b) */
+  0,                            /* leave == */
+  TRUE,                         /* Array initializer support. */
   0,                            /* no CSE cost estimation yet */
-  _z80_builtins,               /* no builtin functions */
-  GPOINTER,                    /* treat unqualified pointers as "generic" pointers */
-  1,                           /* reset labelKey to 1 */
-  1,                           /* globals & local static allowed */
+  _z80_builtins,                /* no builtin functions */
+  GPOINTER,                     /* treat unqualified pointers as "generic" pointers */
+  1,                            /* reset labelKey to 1 */
+  1,                            /* globals & local static allowed */
   PORT_MAGIC
 };
 
@@ -749,7 +836,7 @@ PORT gbz80_port =
 {
   TARGET_ID_GBZ80,
   "gbz80",
-  "Gameboy Z80-like",          /* Target name */
+  "Gameboy Z80-like",           /* Target name */
   NULL,
   {
     glue,
@@ -760,11 +847,11 @@ PORT gbz80_port =
   {
     NULL,
     ASMCMD,
-    "-plosgff",                        /* Options with debug */
-    "-plosgff",                        /* Options without debug */
+    "-plosgff",                 /* Options with debug */
+    "-plosgff",                 /* Options without debug */
     0,
     ".asm",
-    NULL                       /* no do_assemble function */
+    NULL                        /* no do_assemble function */
   },
   {
     NULL,
@@ -781,7 +868,7 @@ PORT gbz80_port =
     1, 2, 2, 4, 2, 2, 2, 1, 4, 4
   },
   /* tags for generic pointers */
-  { 0x00, 0x40, 0x60, 0x80 },          /* far, near, xstack, code */
+  { 0x00, 0x40, 0x60, 0x80 },           /* far, near, xstack, code */
   {
     "XSEG",
     "STACK",
@@ -837,31 +924,31 @@ PORT gbz80_port =
   z80_assignRegisters,
   _getRegName,
   _keywords,
-  0,                           /* no assembler preamble */
-  NULL,                                /* no genAssemblerEnd */
-  0,                           /* no local IVT generation code */
+  0,                            /* no assembler preamble */
+  NULL,                         /* no genAssemblerEnd */
+  0,                            /* no local IVT generation code */
   0,                            /* no genXINIT code */
-  NULL,                        /* genInitStartup */
+  NULL,                         /* genInitStartup */
   _reset_regparm,
   _reg_parm,
   _process_pragma,
   _mangleSupportFunctionName,
   _hasNativeMulFor,
-  hasExtBitOp,                 /* hasExtBitOp */
-  oclsExpense,                 /* oclsExpense */
+  hasExtBitOp,                  /* hasExtBitOp */
+  oclsExpense,                  /* oclsExpense */
   TRUE,
-  TRUE,                                /* little endian */
-  0,                           /* leave lt */
-  0,                           /* leave gt */
-  1,                           /* transform <= to ! > */
-  1,                           /* transform >= to ! < */
-  1,                           /* transform != to !(a == b) */
-  0,                           /* leave == */
+  TRUE,                         /* little endian */
+  0,                            /* leave lt */
+  0,                            /* leave gt */
+  1,                            /* transform <= to ! > */
+  1,                            /* transform >= to ! < */
+  1,                            /* transform != to !(a == b) */
+  0,                            /* leave == */
   TRUE,                         /* Array initializer support. */
   0,                            /* no CSE cost estimation yet */
-  NULL,                        /* no builtin functions */
-  GPOINTER,                    /* treat unqualified pointers as "generic" pointers */
-  1,                           /* reset labelKey to 1 */
-  1,                           /* globals & local static allowed */
+  NULL,                         /* no builtin functions */
+  GPOINTER,                     /* treat unqualified pointers as "generic" pointers */
+  1,                            /* reset labelKey to 1 */
+  1,                            /* globals & local static allowed */
   PORT_MAGIC
 };