add 'on demand' integer promotion
[fw/sdcc] / src / SDCCmem.h
index 6f10c4e165f074676afb66c51c67019c2caf86b6..ce734cf58f1f2c6763414b14947ce61292559843 100644 (file)
@@ -7,6 +7,8 @@
 
 struct set ;
 struct value ;
+struct eBBlock;
+
 typedef  struct memmap{
     unsigned char  pageno;    /* page no for this variable  */
     const char     *sname;    /*   character prefix for map */
@@ -36,6 +38,7 @@ extern FILE   *junkFile ;
 #define  BIT_NAME      port->mem.bit_name
 #define  REG_NAME      port->mem.reg_name
 #define  STATIC_NAME   port->mem.static_name
+#define         HOME_NAME     port->mem.home_name
  
 /* forward definition for variables */
 extern   memmap  *xstack;    /* xternal stack data         */
@@ -53,9 +56,15 @@ extern   memmap  *_const;    /* constant segment           */
 extern   memmap  *generic;   /* unknown                    */
 extern   memmap  *overlay;   /* the overlay segment        */
 extern   memmap  *eeprom;    /* eepromp space              */
+extern   memmap  *eeprom;    /* eepromp space              */
+extern  memmap  *home;      /* Non-banked home space      */
+
+extern int fatalError;
 
 extern   struct  set     *ovrSetSets;
 
+extern int maxRegBank;
+
 /* easy access macros */
 #define IN_BITSPACE(map)       (map && map->bitsp)
 #define IN_STACK(x)  (IS_SPEC(x) && (SPEC_OCLS(x) == xstack || SPEC_OCLS(x) == istack ))
@@ -63,6 +72,7 @@ extern   struct  set     *ovrSetSets;
 #define IN_DIRSPACE(map)        (map && map->direct)
 #define IN_PAGEDSPACE(map)      (map && map->paged )
 #define IN_CODESPACE(map)       (map && map->codesp)
+#define IN_REGSP(map)          (map && map->regsp)
 #define PTR_TYPE(map)           (map ? (map->ptrType ? map->ptrType : POINTER)\
                                      : GPOINTER)
 
@@ -78,5 +88,6 @@ int         allocVariables (struct symbol  *                );
 void        overlay2Set    (                                );
 void        overlay2data   (                                );
 void        redoStackOffsets(                               );
-
+void        printAllocInfo (struct symbol *, FILE *         );
+void        doOverlays     (struct eBBlock **, int count    );
 #endif