X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fz80%2Fralloc.h;h=fb93bdc993aba1bbebb271212b212f4887d674a2;hb=dee370495d8fdc04bd20807bd3ad3c50fc013a06;hp=c798aca71a06f178a6b0ab2990a8b0f1a558bd3b;hpb=1e1d089aeaef38c6c55092486af1d38aa30a7a9d;p=fw%2Fsdcc diff --git a/src/z80/ralloc.h b/src/z80/ralloc.h index c798aca7..fb93bdc9 100644 --- a/src/z80/ralloc.h +++ b/src/z80/ralloc.h @@ -29,42 +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; -void assignRegisters (eBBlock **, int ); -regs *regWithIdx (int); +void assignRegisters (eBBlock **, int); +regs *regWithIdx (int); -void z80_assignRegisters (eBBlock **ebbs, int count); +void z80_assignRegisters (eBBlock ** ebbs, int count); +bitVect *z80_rUmaskForOp (operand * op); #endif