* src/pic/pcoderegs.c,
[fw/sdcc] / src / pic / pcode.h
index cc6cf13518e8cfab0fe7883ef56ae2e2590a68c7..d90eb86cd531048fb537ee8b6e1484a1c46533c2 100644 (file)
 //#include "ralloc.h"
 struct regs;
 
+/* When changing these, you must also update the assembler template
+ * in device/lib/libsdcc/macros.inc */
+#define GPTRTAG_DATA   0x00
+#define GPTRTAG_CODE   0x80
+
 /*
    Post code generation
 
@@ -809,6 +814,7 @@ typedef struct peepCommand {
 #define isPCL(x)        ((PCODE(x)->type == PC_LABEL))
 #define isPCW(x)        ((PCODE(x)->type == PC_WILD))
 #define isPCCS(x)       ((PCODE(x)->type == PC_CSOURCE))
+#define isPCASMDIR(x)  ((PCODE(x)->type == PC_ASMDIR))
 
 /*
   macros for checking pCodeInstruction types
@@ -831,7 +837,7 @@ pCode *newpCodeCharP(char *cP);              // Create a new pCode given a char
 pCode *newpCodeInlineP(char *cP);            // Create a new pCode given a char *
 pCode *newpCodeFunction(char *g, char *f,int); // Create a new function
 pCode *newpCodeLabel(char *name,int key);    // Create a new label given a key
-pCode *newpCodeCSource(int ln, char *f, char *l); // Create a new symbol line 
+pCode *newpCodeCSource(int ln, char *f, const char *l); // Create a new symbol line 
 pCode *findNextInstruction(pCode *pci);
 pCode *findNextpCode(pCode *pc, PC_TYPE pct);
 pCode *pCodeInstructionCopy(pCodeInstruction *pci,int invert);
@@ -867,6 +873,8 @@ int isPCinFlow(pCode *pc, pCode *pcflow);
 struct regs * getRegFromInstruction(pCode *pc);
 
 extern void pcode_test(void);
+void resetpCodeStatistics (void);
+void dumppCodeStatistics (FILE *of);
 
 /*-----------------------------------------------------------------*
  * pCode objects.