X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fpic16%2Fdevice.h;h=64dffb10a627e94c2803d1dd6ac6e1c2495f04fd;hb=2acf2924c7d1ab3038751e0e5b5926f1dffbb2c9;hp=468e1823d76f686066564b2837a86d22d6558a83;hpb=93a5bd697ecc846637ce8e797e0bc3a08167aee5;p=fw%2Fsdcc diff --git a/src/pic16/device.h b/src/pic16/device.h index 468e1823..64dffb10 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 @@ -85,32 +79,54 @@ typedef struct PIC16_device { /* 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 REG_BANK(r) (pic16_finalMapping[REG_ADDR(r)].bank) -//#define REG_isALIASED(r) (pic16_finalMapping[REG_ADDR(r)].alias != 0) -//#define REG_isVALID(r) (pic16_finalMapping[REG_ADDR(r)].isValid) +#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; - int opt_banksel; - int omit_configw; - int omit_ivt; - int leave_reset; - int stack_model; - int ivt_loc; - int nodefaultlibs; - int dumpcalltree; - int use_crt; - char *crt_name; - int no_crt; + int no_banksel; + int opt_banksel; + int omit_configw; + int omit_ivt; + int leave_reset; + int stack_model; + int ivt_loc; + int nodefaultlibs; + int dumpcalltree; + char *crt_name; + int no_crt; + 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; + unsigned long udsize; + unsigned long idsize; + unsigned long intsize; +} stats_t; + +extern stats_t statistics; + extern pic16_options_t pic16_options; extern PIC16_device *pic16;