* src/port.h (struct PORT): added field gp_tags, to hold the tag
[fw/sdcc] / src / izt / i186.c
index 8da5f08242de94f60a7037bac388097243409489..da67d9efc095d2349ceeb14eaeeeecf7d0f7db93 100644 (file)
@@ -136,7 +136,9 @@ PORT i186_port = {
     TARGET_ID_I186,
     "i186",
     "Intel 80186",      /* Target name */
+    NULL,
     {
+        glue,
         FALSE,          /* Emit glue around main */
         MODEL_SMALL,
         MODEL_SMALL
@@ -145,12 +147,15 @@ PORT i186_port = {
         _asmCmd,
         NULL,
         NULL,
+        NULL,
         0,
-        ".s"
+        ".s",
+       NULL                    /* no do_assemble function */
     },
     {
         _linkCmd,
         NULL,
+        NULL,
         ".o"
     },
     {
@@ -160,6 +165,9 @@ PORT i186_port = {
         /* 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 */
+
     {
         ".BSS",
         ".BSS",
@@ -173,6 +181,8 @@ PORT i186_port = {
         ".DATA",
         ".TEXT",
         ".TEXT",
+       NULL, // xidata
+       NULL, // xinit
         NULL,
         NULL,
         1
@@ -187,22 +197,34 @@ PORT i186_port = {
     "_",
     _i186_init,
     _i186_parseOptions,
+    NULL,
     _i186_finaliseOptions,
     _i186_setDefaultOptions,
     izt_assignRegisters,
     _i186_getRegName ,
     _i186_keywords,
     _i186_genAssemblerPreamble,
+    NULL,                              /* no genAssemblerEnd */
     _i186_genIVT ,
+    NULL, // _i186_genXINIT
     _i186_reset_regparm,
     _i186_regparm,
     NULL,
+    NULL,
+    NULL,
     FALSE,
+    TRUE,                              /* little endian */
     0,  /* leave lt */
     0,  /* leave gt */
     1,  /* transform <= to ! > */
     1,  /* transform >= to ! < */
     1,  /* transform != to !(a == b) */
     0,  /* leave == */
+    FALSE,                        /* No 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 */
     PORT_MAGIC
 };