Fixed up support for the gbz80 such that it will at least run (and fail badly) the...
[fw/sdcc] / src / SDCCicode.h
index d8d8e31ee671730b97e20f140f2a8a1825cb78e3..12d31f035b2877a2348e2433661208030dd451b0 100644 (file)
@@ -84,7 +84,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 +111,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 +172,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 +207,7 @@ iCodeTable;
                       x->op == IPOP     ||     \
                       x->op == JUMPTABLE ||    \
                       x->op == RECEIVE  ||     \
+                     x->op == ARRAYINIT ||    \
                      SKIP_IC1(x)||  \
                      x->op == SEND         )
 
@@ -282,7 +284,7 @@ iCodeTable *getTableEntry (int);
 int isOperandLiteral (operand *);
 operand *operandOperation (operand *, operand *, int, sym_link *);
 double operandLitValue (operand *);
-operand *operandFromLit (float);
+operand *operandFromLit (double);
 operand *operandFromOperand (operand *);
 int isParameterToCall (value *, operand *);
 iCode *newiCodeLabelGoto (int, symbol *);