X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fz80%2Fralloc.h;h=b0714af94c1551d5f441604e87ac89317ec4294a;hb=4d4cea3d78badb61025545d2736d0318e969ce16;hp=d3af0525f6b4e304551d544d14876dbe549a25b4;hpb=5f832da0b82bc7a78f14b96f9e7892f19ac88126;p=fw%2Fsdcc diff --git a/src/z80/ralloc.h b/src/z80/ralloc.h index d3af0525..b0714af9 100644 --- a/src/z80/ralloc.h +++ b/src/z80/ralloc.h @@ -29,40 +29,52 @@ #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 (ebbIndex *); +bitVect *z80_rUmaskForOp (operand * op); #endif