]> git.gag.com Git - fw/sdcc/blobdiff - src/mcs51/main.c
* as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
[fw/sdcc] / src / mcs51 / main.c
index 22aa54275d13df5b5e7f85474f7d52c4ec7ef1aa..61ca32eda749b51b77c0f69f041a85f273d99035 100644 (file)
@@ -30,6 +30,8 @@ static char *_mcs51_keywords[] =
   "pdata",
   "reentrant",
   "sfr",
+  "sfr16",
+  "sfr32",
   "sbit",
   "using",
   "xdata",
@@ -47,7 +49,7 @@ static char *_mcs51_keywords[] =
 
 
 
-void mcs51_assignRegisters (eBBlock ** ebbs, int count);
+void mcs51_assignRegisters (ebbIndex *);
 
 static int regParmFlg = 0;      /* determine if we can register a parameter */
 
@@ -706,43 +708,49 @@ PORT mcs51_port =
     1, 2, 2, 4, 1, 2, 3, 1, 4, 4
   },
   {
-    "XSTK    (PAG,XDATA)",
-    "STACK   (DATA)",
-    "CSEG    (CODE)",
-    "DSEG    (DATA)",
-    "ISEG    (DATA)",
-    "PSEG    (PAG,XDATA)",
-    "XSEG    (XDATA)",
-    "BSEG    (BIT)",
-    "RSEG    (DATA)",
-    "GSINIT  (CODE)",
-    "OSEG    (OVR,DATA)",
-    "GSFINAL (CODE)",
-    "HOME    (CODE)",
-    "XISEG   (XDATA)", // initialized xdata
-    "XINIT   (CODE)", // a code copy of xiseg
+    "XSTK    (PAG,XDATA)",     // xstack_name
+    "STACK   (DATA)",          // istack_name
+    "CSEG    (CODE)",          // code_name
+    "DSEG    (DATA)",          // data_name
+    "ISEG    (DATA)",          // idata_name
+    "PSEG    (PAG,XDATA)",     // pdata_name
+    "XSEG    (XDATA)",         // xdata_name
+    "BSEG    (BIT)",           // bit_name
+    "RSEG    (DATA)",          // reg_name
+    "GSINIT  (CODE)",          // static_name
+    "OSEG    (OVR,DATA)",      // overlay_name
+    "GSFINAL (CODE)",          // post_static_name
+    "HOME    (CODE)",          // home_name
+    "XISEG   (XDATA)",         // xidata_name - initialized xdata   initialized xdata
+    "XINIT   (CODE)",          // xinit_name - a code copy of xiseg
+    "CONST   (CODE)",          // const_name - const data (code or not)
     NULL,
     NULL,
     1
   },
   { _mcs51_genExtraAreas, NULL },
   {
-    +1, 0, 4, 1, 1, 0
+    +1,                /* direction (+1 = stack grows up) */
+    0,         /* bank_overhead (switch between register banks) */
+    4,         /* isr_overhead */
+    1,         /* call_overhead (2 for return address - 1 for pre-incrementing push */
+    1,         /* reent_overhead */
+    0          /* banked_overhead (switch between code banks) */
   },
-    /* mcs51 has an 8 bit mul */
   {
+    /* mcs51 has an 8 bit mul */
     1, -1
   },
   {
     mcs51_emitDebuggerSymbol
   },
   {
-    255/3,      /* maxCount */
-    3,          /* sizeofElement */
+    256,        /* maxCount */
+    2,          /* sizeofElement */
     {6,9,15},   /* sizeofMatchJump[] */
     {9,18,36},  /* sizeofRangeCompare[] */
     4,          /* sizeofSubtract */
-    7,          /* sizeofDispatch */
+    6,          /* sizeofDispatch */
   },
   "_",
   _mcs51_init,