X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fpic16%2Fdevice.h;h=c3dbd623b848f0a36713ca2bd160608aba197528;hb=be3554776f3e99295e17a0232cb15c42cea80929;hp=fd06fc4bd6fca46917da5347d7f894bb3a11b3a8;hpb=3062f96ccb55d1d05caf9c8782f4961f87b341ce;p=fw%2Fsdcc diff --git a/src/pic16/device.h b/src/pic16/device.h index fd06fc4b..c3dbd623 100644 --- a/src/pic16/device.h +++ b/src/pic16/device.h @@ -33,12 +33,6 @@ #define CONFIGURATION_WORDS 20 #define IDLOCATION_BYTES 20 -typedef struct { - int sfrLoAddr; - int sfrHiAddr; -} sfrRangeInfo_t; - - typedef struct { unsigned int mask; int emit; @@ -66,22 +60,23 @@ typedef struct { #define PROCESSOR_NAMES 4 /* Processor unique attributes */ typedef struct PIC16_device { - char *name[PROCESSOR_NAMES];/* aliases for the processor name */ - - int maxRAMaddress; /* maximum value for a data address */ + char *name[PROCESSOR_NAMES]; /* aliases for the processor name */ + /* RAMsize *must* be the first item to copy for 'using' */ int RAMsize; /* size of Data RAM - VR 031120 */ int acsSplitOfs; /* access bank split offset */ - int extMIface; /* device has external memory interface */ - sfrRangeInfo_t sfrRange; /* SFR range */ configWordsInfo_t cwInfo; /* configuration words info */ idBytesInfo_t idInfo; /* ID Locations info */ + /* next *must* be the first field NOT being copied via 'using' */ + struct PIC16_device *next; /* linked list */ } PIC16_device; +extern PIC16_device *pic16; + /* Given a pointer to a register, this macro returns the bank that it is in */ #define REG_ADDR(r) ((r)->isBitField ? (((r)->address)>>3) : (r)->address) #define OF_LR_SUPPORT 0x00000001 -#define OF_OPTIMIZE_GOTO 0x00000002 +#define OF_NO_OPTIMIZE_GOTO 0x00000002 #define OF_OPTIMIZE_CMP 0x00000004 #define OF_OPTIMIZE_DF 0x00000008 @@ -101,10 +96,10 @@ typedef struct { unsigned long opt_flags; int gstack; unsigned int debgen; - int CATregs; + int xinst; } pic16_options_t; -extern int xinst; +extern pic16_options_t pic16_options; #define STACK_MODEL_SMALL (pic16_options.stack_model == 0) #define STACK_MODEL_LARGE (pic16_options.stack_model == 1) @@ -128,21 +123,15 @@ typedef struct { extern stats_t statistics; -extern pic16_options_t pic16_options; -extern PIC16_device *pic16; - /****************************************/ void pic16_assignConfigWordValue(int address, unsigned int value); void pic16_assignIdByteValue(int address, char value); int pic16_isREGinBank(regs *reg, int bank); int pic16_REGallBanks(regs *reg); -void pic16_setMaxRAM(int size); -int PIC16_IS_CONFIG_ADDRESS(int address); -int PIC16_IS_IDLOC_ADDRESS(int address); -int PIC16_IS_HWREG_ADDRESS(int address); int checkAddReg(set **set, regs *reg); int checkAddSym(set **set, symbol *reg); int checkSym(set *set, symbol *reg); #endif /* __DEVICE_H__ */ +