X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Favr%2Fralloc.h;h=b146bca68c83f89061683fb816f0edcb624600fb;hb=a10f1efe331d9feef47f4ce7a33234b86919d8e1;hp=0e1ecbe049113e67ea8b0bee55ca361f4bb576b9;hpb=390c2efea588d5379a4eec3f5c904547d45142dc;p=fw%2Fsdcc diff --git a/src/avr/ralloc.h b/src/avr/ralloc.h index 0e1ecbe0..b146bca6 100644 --- a/src/avr/ralloc.h +++ b/src/avr/ralloc.h @@ -27,31 +27,42 @@ #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 + { + 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_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 */ -} regs; -extern regs regs8051[]; - -regs *mcs51_regWithIdx (int); + { + 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); #endif