X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fpic16%2Fdevice.h;h=63b83572d15d3047f68267b507725b23711ddce7;hb=d68ded6371633fe092e01a10c55d47022d3b32b8;hp=92cbe337eb5f8430622843ff2021b40455295b35;hpb=e633e4f1e71bcfd0b025f81291a64ca176533977;p=fw%2Fsdcc diff --git a/src/pic16/device.h b/src/pic16/device.h index 92cbe337..63b83572 100644 --- a/src/pic16/device.h +++ b/src/pic16/device.h @@ -30,12 +30,6 @@ #ifndef __DEVICE_H__ #define __DEVICE_H__ -#if defined(__BORLANDC__) || defined(_MSC_VER) -#define STRCASECMP stricmp -#else -#define STRCASECMP strcasecmp -#endif - #define CONFIGURATION_WORDS 20 #define IDLOCATION_BYTES 20 @@ -72,15 +66,15 @@ 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; /* Given a pointer to a register, this macro returns the bank that it is in */ @@ -88,7 +82,8 @@ typedef struct PIC16_device { #define OF_LR_SUPPORT 0x00000001 #define OF_OPTIMIZE_GOTO 0x00000002 - +#define OF_OPTIMIZE_CMP 0x00000004 +#define OF_OPTIMIZE_DF 0x00000008 typedef struct { int no_banksel; @@ -105,14 +100,23 @@ typedef struct { int ip_stack; unsigned long opt_flags; int gstack; + unsigned int debgen; } pic16_options_t; +extern int xinst; + #define STACK_MODEL_SMALL (pic16_options.stack_model == 0) #define STACK_MODEL_LARGE (pic16_options.stack_model == 1) extern set *fix_idataSymSet; extern set *rel_idataSymSet; +#if 0 +/* This is an experimental code for #pragma inline + and is temporarily disabled for 2.5.0 release */ +extern set *asmInlineMap; +#endif /* 0 */ + typedef struct { unsigned long isize; unsigned long adsize; @@ -131,7 +135,6 @@ 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); @@ -141,3 +144,4 @@ int checkAddSym(set **set, symbol *reg); int checkSym(set *set, symbol *reg); #endif /* __DEVICE_H__ */ +