* support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
[fw/sdcc] / src / SDCCicode.h
index d94c8de517b0dec8e9076df91f7078e26b75dd91..4156e257fde85a3adda835b4d907d6f981c084e5 100644 (file)
@@ -49,6 +49,7 @@ typedef enum
 OPTYPE;
 
 #define IS_SYMOP(op) (op && op->type == SYMBOL)
+#define IS_VALOP(op) (op && op->type == VALUE)
 #define ADDTOCHAIN(x) addSetHead(&iCodeChain,x)
 
 #define LRFTYPE       sym_link *ltype = operandType(left), \
@@ -67,6 +68,7 @@ OPTYPE;
 #define OP_SYMBOL(op)      op->operand.symOperand
 #define OP_SYM_TYPE(op)    op->operand.symOperand->type
 #define OP_SYM_ETYPE(op)   op->operand.symOperand->etype
+#define OP_VALUE(op)       op->operand.valOperand
 #define SPIL_LOC(op)       op->operand.symOperand->usl.spillLoc
 #define OP_LIVEFROM(op)    op->operand.symOperand->liveFrom
 #define OP_LIVETO(op)      op->operand.symOperand->liveTo
@@ -84,7 +86,6 @@ typedef struct operand
     unsigned int isGptr:1;     /* is a generic pointer  */
     unsigned int isParm:1;     /* is a parameter        */
     unsigned int isLiteral:1;  /* operand is literal    */
-    unsigned int noSpilLoc:1;  /* cannot be assigned a spil location */
 
     unsigned key;
     union
@@ -112,6 +113,7 @@ operand;
 #define IC_JTCOND(x) (x)->ulrrcnd.jmpTab.condition
 #define IC_JTLABELS(x) (x)->ulrrcnd.jmpTab.labels
 #define IC_INLINE(x) (x)->inlineAsm
+#define IC_ARRAYILIST(x) (x)->arrayInitList
 
 typedef struct iCode
   {
@@ -172,6 +174,7 @@ typedef struct iCode
     argLabel;
 
     char *inlineAsm;           /* pointer to inline assembler code */
+    literalList *arrayInitList; /* point to array initializer list. */
 
     int lineno;                        /* file & lineno for debug information */
     char *filename;
@@ -206,6 +209,7 @@ iCodeTable;
                       x->op == IPOP     ||     \
                       x->op == JUMPTABLE ||    \
                       x->op == RECEIVE  ||     \
+                     x->op == ARRAYINIT ||    \
                      SKIP_IC1(x)||  \
                      x->op == SEND         )