X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fpic16%2Fdevice.h;h=ada8cd6db2ec80f27a281f01be93c1cb9d2da8c6;hb=d0b75a25e014ff9924b4961e7927de9f591f5d0d;hp=f603305506a61eb7eac125492f023c13d2b6057c;hpb=b69c2ce731d39b467f0bac5f532ef5e94a1eff5e;p=fw%2Fsdcc diff --git a/src/pic16/device.h b/src/pic16/device.h index f6033055..ada8cd6d 100644 --- a/src/pic16/device.h +++ b/src/pic16/device.h @@ -86,8 +86,10 @@ 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 OF_LR_SUPPORT 0x00000001 - +#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; @@ -103,14 +105,35 @@ typedef struct { int no_crt; int ip_stack; unsigned long opt_flags; + int gstack; + unsigned int debgen; + int CATregs; } 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;