X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fds390%2Fralloc.h;h=27a8d920847fd8d80db2ee2ad20ed3b9a6518c88;hb=5a1d5e778e85664f4e6657019348b4756b16eacb;hp=6b3a754d0ef841aca132a56a31855ef91b3ba9fd;hpb=f43be8b5c132bcd1a1b4783840d7e292cfec0370;p=fw%2Fsdcc diff --git a/src/ds390/ralloc.h b/src/ds390/ralloc.h index 6b3a754d..27a8d920 100644 --- a/src/ds390/ralloc.h +++ b/src/ds390/ralloc.h @@ -27,31 +27,49 @@ #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 + { + R2_IDX = 0, R3_IDX, R4_IDX, R5_IDX, + R6_IDX, R7_IDX, R0_IDX, R1_IDX, + DPL_IDX, DPH_IDX, DPX_IDX, B_IDX, + B0_IDX, B1_IDX, B2_IDX, B3_IDX, + B4_IDX, B5_IDX, B6_IDX, B7_IDX, + X8_IDX, X9_IDX, X10_IDX, X11_IDX, + X12_IDX, CND_IDX, + A_IDX, DPL1_IDX, DPH1_IDX, + DPX1_IDX, DPS_IDX, AP_IDX, + END_IDX + }; #define REG_PTR 0x01 #define REG_GPR 0x02 #define REG_CND 0x04 +#define REG_BIT 0x08 /* 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; + { + 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 */ + int print; /* needs to be printed*/ + } +regs; extern regs regs390[]; -regs *ds390_regWithIdx (int); +regs *ds390_regWithIdx (int); + +bitVect *ds390_rUmaskForOp (operand * op); +bitVect *ds390_allBitregs (void); + +extern int ds390_ptrRegReq; +extern int ds390_nRegs; +extern int ds390_nBitRegs; #endif