* debugger/mcs51/break.c,
[fw/sdcc] / src / mcs51 / ralloc.h
index 85add4180664193811fcd1057af0276af277f7d4..cfb9584dcc08a6faac152ee701a3c93bc2ff6793 100644 (file)
@@ -8,19 +8,19 @@
    under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2, or (at your option) any
    later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-   
+
    In other words, you are welcome to use, share and improve this program.
    You are forbidden to forbid anyone else to use, share and improve
-   what you give them.   Help stamp out software-hoarding!  
+   what you give them.   Help stamp out software-hoarding!
 -------------------------------------------------------------------------*/
 #include "SDCCicode.h"
 #include "SDCCBBlock.h"
 
 enum
   {
-    R2_IDX = 0, R3_IDX, R4_IDX,
-    R5_IDX, R6_IDX, R7_IDX,
-    R0_IDX, R1_IDX, X8_IDX,
-    X9_IDX, X10_IDX, X11_IDX,
-    X12_IDX, CND_IDX
+    R2_IDX = 0, R3_IDX, R4_IDX, R5_IDX,
+    R6_IDX, R7_IDX, R0_IDX,  R1_IDX,
+    B0_IDX, B1_IDX, B2_IDX,  B3_IDX,
+    B4_IDX, B5_IDX, B6_IDX,  B7_IDX,
+    X8_IDX, X9_IDX, X10_IDX, X11_IDX,
+    X12_IDX, CND_IDX,
+    DPL_IDX, DPH_IDX, B_IDX, A_IDX,
+    END_IDX
   };
 
 
 #define REG_PTR 0x01
 #define REG_GPR 0x02
 #define REG_CND 0x04
+#define REG_BIT 0x08
 /* definition for the registers */
 typedef struct regs
   {
-    short type;                        /* can have value 
-                                  REG_GPR, REG_PTR or REG_CND */
-    short rIdx;                        /* index into register table */
+    short type;         /* can have value
+                           REG_GPR, REG_PTR or REG_CND */
+    short rIdx;         /* index into register table */
     short otype;
-    char *name;                        /* name */
-    char *dname;               /* name when direct access needed */
-    char *base;                        /* base address */
-    short offset;              /* offset from the base */
-    unsigned isFree:1;         /* is currently unassigned  */
+    char *name;         /* name */
+    char *dname;        /* name when direct access needed */
+    char *base;         /* base address */
+    short offset;       /* offset from the base */
+    unsigned isFree:1;  /* is currently unassigned  */
   }
 regs;
 extern regs regs8051[];
 
 regs *mcs51_regWithIdx (int);
 
+bitVect *mcs51_rUmaskForOp (operand * op);
+bitVect *mcs51_allBitregs (void);
+
+extern int mcs51_ptrRegReq;
+extern int mcs51_nRegs;
+
 #endif