* src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
[fw/sdcc] / src / z80 / ralloc.h
index d3af0525f6b4e304551d544d14876dbe549a25b4..fb93bdc993aba1bbebb271212b212f4887d674a2 100644 (file)
 
 #define DEBUG_FAKE_EXTRA_REGS  0
 
-enum { C_IDX = 0,
-       B_IDX, 
-       E_IDX,
-       D_IDX, 
-       L_IDX, 
-       H_IDX,
+enum
+  {
+    C_IDX = 0,
+    B_IDX,
+    E_IDX,
+    D_IDX,
+    L_IDX,
+    H_IDX,
 #if DEBUG_FAKE_EXTRA_REGS
-       M_IDX,
-       N_IDX,
-       O_IDX,
-       P_IDX,
-       Q_IDX,
-       R_IDX,
-       S_IDX,
-       T_IDX,
+    M_IDX,
+    N_IDX,
+    O_IDX,
+    P_IDX,
+    Q_IDX,
+    R_IDX,
+    S_IDX,
+    T_IDX,
 #endif
-       CND_IDX };
+    CND_IDX
+  };
+
+enum
+  {
+    REG_PTR = 1,
+    REG_GPR = 2,
+    REG_CND = 4,
+    REG_PAIR = 8
+  };
 
-#define REG_PTR 0x01
-#define REG_GPR 0x02
-#define REG_CND 0x04
 /* 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 */
-    char *name ;         /* name */
-    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 */
+    char *name;                        /* name */
+    unsigned isFree:1;         /* is currently unassigned  */
+  }
+regs;
+
+extern regs *regsZ80;
 
-extern regs regsZ80[];
+void assignRegisters (eBBlock **, int);
+regs *regWithIdx (int);
 
-void   assignRegisters (eBBlock **, int );
-regs  *regWithIdx (int);
+void z80_assignRegisters (eBBlock ** ebbs, int count);
+bitVect *z80_rUmaskForOp (operand * op);
 
 #endif