X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fpic16%2Fgen.h;h=4dbf236590ba48a89efe201b9897d1abb94177d9;hb=2fa6944da0e3a79b9218dcabbc0b282e60cd9899;hp=84af5945cfec479c45eaafd117b94c130f7f0678;hpb=35dd84251b9d153bb48ad98be9c5eae77799cb42;p=fw%2Fsdcc diff --git a/src/pic16/gen.h b/src/pic16/gen.h index 84af5945..4dbf2365 100644 --- a/src/pic16/gen.h +++ b/src/pic16/gen.h @@ -156,7 +156,8 @@ extern unsigned pic16_fReturnSizePic; #define emitTOGC pic16_emitpcode(POC_BTG, pic16_popCopyGPR2Bit(PCOP(&pic16_pc_status),PIC_C_BIT)) int pic16_getDataSize(operand *op); -void pic16_emitpcode(PIC_OPCODE poc, pCodeOp *pcop); +void pic16_emitpcode_real(PIC_OPCODE poc, pCodeOp *pcop); +#define pic16_emitpcode(poc,pcop) do { if (pic16_pcode_verbose) pic16_emitpcomment ("%s:%u(%s):", __FILE__, __LINE__, __FUNCTION__); pic16_emitpcode_real(poc,pcop); } while(0) void pic16_emitpLabel(int key); void pic16_emitcode (char *inst,char *fmt, ...); void DEBUGpic16_emitcode (char *inst,char *fmt, ...); @@ -180,7 +181,7 @@ void pic16_genLeftShiftLiteral (operand *left, operand *right, operand *result, pCodeOp *pic16_popGet2p(pCodeOp *src, pCodeOp *dst); void pic16_emitpcomment (char *fmt, ...); -pCodeOp *pic16_popGetLabel(unsigned int key); +pCodeOp *pic16_popGetLabel(int key); pCodeOp *pic16_popCopyReg(pCodeOpReg *pc); pCodeOp *pic16_popCopyGPR2Bit(pCodeOp *pc, int bitval); pCodeOp *pic16_popGetLit(int lit); @@ -188,7 +189,7 @@ pCodeOp *pic16_popGetLit2(int lit, pCodeOp *arg2); pCodeOp *popGetWithString(char *str); pCodeOp *pic16_popGet (asmop *aop, int offset);//, bool bit16, bool dname); pCodeOp *pic16_popGetTempReg(int lock); -pCodeOp *pic16_popGetTempRegCond(bitVect *, int lock); +pCodeOp *pic16_popGetTempRegCond(bitVect *, bitVect *, int lock); void pic16_popReleaseTempReg(pCodeOp *pcop, int lock); pCodeOp *pic16_popCombine2(pCodeOpReg *src, pCodeOpReg *dst, int noalloc); @@ -202,23 +203,32 @@ void pic16_freeAsmop (operand *op, asmop *aaop, iCode *ic, bool pop); const char *pic16_pCodeOpType( pCodeOp *pcop); int pic16_my_powof2 (unsigned long num); -void mov2w (asmop *aop, int offset); +void pic16_mov2w (asmop *aop, int offset); +void pic16_mov2f(asmop *dst, asmop *src, int offset); void dumpiCode(iCode *lic); int inWparamList(char *s); +#include "device.h" + #define DUMP_FUNCTION_ENTRY 1 #define DUMP_FUNCTION_EXIT 0 #if DUMP_FUNCTION_ENTRY -#define FENTRY pic16_emitpcomment("**{\t%d %s", __LINE__, __FUNCTION__) +#define FENTRY if(pic16_options.debgen&2)pic16_emitpcomment("**{\t%d %s", __LINE__, __FUNCTION__) #define FENTRY2 if(pic16_options.debgen&2)pic16_emitpcomment("**{\t%d %s", __LINE__, __FUNCTION__) +#else +#define FENTRY +#define FENTRY2 #endif #if DUMP_FUNCTION_EXIT -#define FEXIT pic16_emitpcomment("; **}", "%d %s", __LINE__, __FUNCTION__) +#define FEXIT if(pic16_options.debgen&2)pic16_emitpcomment("; **}", "%d %s", __LINE__, __FUNCTION__) #define FEXIT2 if(pic16_options.debgen&2)pic16_emitpcomment("**{\t%d %s", __LINE__, __FUNCTION__) +#else +#define FEXIT +#define FEXIT2 #endif #define ERROR werror(W_POSSBUG2, __FILE__, __LINE__)