* support/scripts/sdcc.nsi: added asranlib.exe to the install package
[fw/sdcc] / src / ds390 / ralloc.h
index dec059a64b5cdf36f862ade8a30cbc29413c6c48..27a8d920847fd8d80db2ee2ad20ed3b9a6518c88 100644 (file)
 #ifndef SDCCRALLOC_H
 #define SDCCRALLOC_H 1
 
-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 };
+enum
+  {
+    R2_IDX = 0, R3_IDX, R4_IDX, R5_IDX,
+    R6_IDX, R7_IDX, R0_IDX, R1_IDX,
+    DPL_IDX, DPH_IDX, DPX_IDX, B_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,
+    A_IDX, DPL1_IDX, DPH1_IDX,
+    DPX1_IDX, DPS_IDX, AP_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 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  */    
-} regs;
+  {
+    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  */
+    int  print;                 /* needs to be printed*/
+  }
+regs;
 extern regs regs390[];
 
-regs  *ds390_regWithIdx (int);
+regs *ds390_regWithIdx (int);
+
+bitVect *ds390_rUmaskForOp (operand * op);
+bitVect *ds390_allBitregs (void);
 
 extern int ds390_ptrRegReq;
 extern int ds390_nRegs;
+extern int ds390_nBitRegs;
 
 #endif