*** empty log message ***
[fw/sdcc] / src / port.h
index 2e1bab4b8a4bf1da40a594215b3167862532c185..672a701b3b89e86f36b791adaa83166564554101 100644 (file)
@@ -28,6 +28,7 @@
 #define TARGET_IS_PIC   (port->id==TARGET_ID_PIC)
 #define TARGET_IS_I186 (port->id==TARGET_ID_I186)
 #define TARGET_IS_TCLS900H (port->id==TARGET_ID_TCLS900H)
+#define TARGET_IS_XA51 (port->id==TARGET_ID_XA51)
 
 #define MAX_BUILTIN_ARGS       16
 /* definition of builtin functions */
@@ -79,6 +80,8 @@ typedef struct
        int externGlobal;
        /* assembler file extension */
        const char *file_ext;
+        /** If non-null will be used to execute the assembler. */
+       void (*do_assemble) (const char * const*);      
       }
     assembler;
 
@@ -134,8 +137,10 @@ typedef struct
        const char *overlay_name;
        const char *post_static_name;
        const char *home_name;
-       struct memmap *default_local_map;       /* default location for auto vars */
-       struct memmap *default_globl_map;       /* default location for globl vars */
+       const char *xidata_name; // initialized xdata
+       const char *xinit_name; // a code copy of xidata
+       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 */
       }
     mem;
@@ -197,6 +202,8 @@ typedef struct
 
     /* Write any port specific assembler output. */
     void (*genAssemblerPreamble) (FILE * of);
+      /* invoked at end assembler file */  
+    void (*genAssemblerEnd) (FILE * of);
 
     /* Write the port specific IVT. If genIVT is NULL or if
      * it returns zero, default (8051) IVT generation code
@@ -204,6 +211,7 @@ typedef struct
      */
     int (*genIVT) (FILE * of, symbol ** intTable, int intCount);
 
+    void (*genXINIT) (FILE * of);
 
     /* parameter passing in register related functions */
     void (*reset_regparms) (); /* reset the register count */
@@ -236,9 +244,11 @@ typedef struct
     bool eq_nne;               /* transform a == b --> ! (a != b)  */
 
     bool arrayInitializerSuppported;  
-    
     bool (*cseOk) (iCode *ic, iCode *pdic);
-    builtins *builtintable;    /* table of builtin functions */
+    builtins *builtintable;     /* table of builtin functions */
+    int unqualified_pointer;   /* unqualified pointers type is  */    
+    int reset_labelKey  ;      /* reset Label no 1 at the start of a function */
+    int globals_allowed ;       /* global & static locals not allowed ?  0 ONLY TININative*/
 #define PORT_MAGIC 0xAC32
 /** Used at runtime to detect if this structure has been completly filled in. */
     int magic;
@@ -271,5 +281,11 @@ extern PORT i186_port;
 #if !OPT_DISABLE_TLCS900H
 extern PORT tlcs900h_port;
 #endif
+#if !OPT_DISABLE_TININative
+extern PORT tininative_port;
+#endif
+#if !OPT_DISABLE_XA51
+extern PORT xa51_port;
+#endif
 
 #endif /* PORT_INCLUDE*/