* src/SDCCglue.c (emitMaps): allow public sfr variables
[fw/sdcc] / src / avr / ralloc.h
index f293e60cec9a77ff5e801ca5a6b74e676dac4ca8..b146bca68c83f89061683fb816f0edcb624600fb 100644 (file)
 #ifndef SDCCRALLOC_H
 #define SDCCRALLOC_H 1
 
-enum { R0_IDX = 0, R1_IDX , R2_IDX , R3_IDX , R4_IDX , 
-       R5_IDX    , R6_IDX , R7_IDX , R8_IDX , R9_IDX ,
-       R10_IDX   , R11_IDX, R12_IDX, R13_IDX, R14_IDX,
-       R15_IDX   , R16_IDX, R17_IDX, R18_IDX, R19_IDX,
-       R20_IDX   , R21_IDX, R22_IDX, R23_IDX, R24_IDX,
-       R25_IDX   , R26_IDX, R27_IDX, R28_IDX, R29_IDX,
-       R30_IDX   , R31_IDX, X_IDX  , Z_IDX  , CND_IDX };
+enum
+  {
+    R0_IDX = 0, R1_IDX, R2_IDX, R3_IDX, R4_IDX,
+    R5_IDX, R6_IDX, R7_IDX, R8_IDX, R9_IDX,
+    R10_IDX, R11_IDX, R12_IDX, R13_IDX, R14_IDX,
+    R15_IDX, R16_IDX, R17_IDX, R18_IDX, R19_IDX,
+    R20_IDX, R21_IDX, R22_IDX, R23_IDX, R24_IDX,
+    R25_IDX, R26_IDX, R27_IDX, R28_IDX, R29_IDX,
+    R30_IDX, R31_IDX, X_IDX, Z_IDX, CND_IDX
+  };
 
 
 #define REG_PTR 0x01
 #define REG_GPR 0x02
-#define REG_SCR 0x03
-#define REG_CND 0x04
+#define REG_SCR 0x04
+#define REG_CND 0x08
+#define REG_MASK 0x0f
+#define REG_PAIR 0x10
 
 /* 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  */
-    unsigned saveReq:1;  /* save required @ function entry ? */
-} 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  */
+    unsigned saveReq:1;                /* save required @ function entry ? */
+  }
+regs;
 extern regs regsAVR[];
 
-regs  *avr_regWithIdx (int);
+regs *avr_regWithIdx (int);
 
 #endif