X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fpic%2Fralloc.h;h=9bf058defdcd1f578373538d00023193dd206d36;hb=c0d6d4907573f90342ec1acdd3b4f8d47cd33cbd;hp=35c582043ec5dbacb29c31395b9eec85d1f81277;hpb=08dd337046c6cfa728572976d1a23d3ea5654da6;p=fw%2Fsdcc diff --git a/src/pic/ralloc.h b/src/pic/ralloc.h index 35c58204..9bf058de 100644 --- a/src/pic/ralloc.h +++ b/src/pic/ralloc.h @@ -3,7 +3,7 @@ SDCCralloc.h - header file register allocation Written By - Sandeep Dutta . sandeep.dutta@usa.net (1998) - PIC port - T. Scott Dattalo scott@dattalo.com (2000) + PIC port - T. Scott Dattalo scott@dattalo.com (2000) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -33,20 +33,20 @@ 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 + 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 { - REG_PTR=1, - REG_GPR, - REG_CND, - REG_SFR, - REG_STK, - REG_TMP + REG_PTR=1, + REG_GPR, + REG_CND, + REG_SFR, + REG_STK, + REG_TMP }; //#define REG_PTR 0x01 //#define REG_GPR 0x02 @@ -58,28 +58,27 @@ enum { /* definition for the registers */ typedef struct regs { - short type; /* can have value - * 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 */ - - unsigned isFree:1; /* is currently unassigned */ - unsigned wasUsed:1; /* becomes true if register has been used */ - unsigned isFixed:1; /* True if address can't change */ - unsigned isMapped:1; /* The Register's address has been mapped to physical RAM */ - unsigned isBitField:1; /* True if reg is type bit OR is holder for several bits */ - unsigned isEmitted:1; /* True if the reg has been written to a .asm file */ - unsigned isPublic:1; /* True if the reg is not static and can be modified in another module (ie a another c or asm file) */ - unsigned isExtern:1; /* True if the reg is in another module */ - unsigned address; /* reg's address if isFixed | isMapped is true */ - unsigned size; /* 0 for byte, 1 for int, 4 for long */ - unsigned alias; /* Alias mask if register appears in multiple banks */ - struct regs *reg_alias; /* If more than one register share the same address - * then they'll point to each other. (primarily for bits)*/ - pCodeRegLives reglives; /* live range mapping */ + short type; /* can have value + * REG_GPR, REG_PTR or REG_CND + * This like the "meta-type" */ + short pc_type; /* pcode type */ + short rIdx; /* index into register table */ + char *name; /* name */ + + unsigned isFree:1; /* is currently unassigned */ + unsigned wasUsed:1; /* becomes true if register has been used */ + unsigned isFixed:1; /* True if address can't change */ + unsigned isMapped:1; /* The Register's address has been mapped to physical RAM */ + unsigned isBitField:1; /* True if reg is type bit OR is holder for several bits */ + unsigned isEmitted:1; /* True if the reg has been written to a .asm file */ + unsigned isPublic:1; /* True if the reg is not static and can be modified in another module (ie a another c or asm file) */ + unsigned isExtern:1; /* True if the reg is in another module */ + unsigned address; /* reg's address if isFixed | isMapped is true */ + unsigned size; /* 0 for byte, 1 for int, 4 for long */ + unsigned alias; /* Alias mask if register appears in multiple banks */ + struct regs *reg_alias; /* If more than one register share the same address + * then they'll point to each other. (primarily for bits)*/ + pCodeRegLives reglives; /* live range mapping */ } regs; extern regs regspic14[];