X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fpic%2Fralloc.h;h=37e37dbc6b09a1c722e9efc80c0de76f3d7367ab;hb=272375bec00437e18d3e3912902b32d320c754c8;hp=1ce9ee8ad65d08e077f1bc18159cc42e4bd3c5da;hpb=b4d69dfd516f175255aa87b18b59dcf309d98b46;p=fw%2Fsdcc diff --git a/src/pic/ralloc.h b/src/pic/ralloc.h index 1ce9ee8a..37e37dbc 100644 --- a/src/pic/ralloc.h +++ b/src/pic/ralloc.h @@ -28,6 +28,8 @@ #ifndef SDCCRALLOC_H #define SDCCRALLOC_H 1 + + enum { R2_IDX = 0, R3_IDX, R4_IDX, @@ -41,11 +43,15 @@ enum #define REG_PTR 0x01 #define REG_GPR 0x02 #define REG_CND 0x04 +#define REG_SFR 0x08 + /* definition for the registers */ typedef struct regs { short type; /* can have value - REG_GPR, REG_PTR or REG_CND */ + * REG_GPR, REG_PTR or REG_CND + * This like the "meta-type" */ + short pc_type; /* pcode type */ short rIdx; /* index into register table */ // short otype; char *name; /* name */ @@ -60,7 +66,9 @@ extern regs regspic14[]; extern int pic14_nRegs; regs *pic14_regWithIdx (int); - +void pic14_freeAllRegs (); +void pic14_deallocateAllRegs (); +regs *pic14_findFreeReg(void); enum PIC_register_types {