Arithmetic accelerator fixes: literal multiply/divide loaded MB in wrong order; multi...
[fw/sdcc] / src / SDCCicode.h
index a7534ecca0151ab617cff4f1c51c7efb23d673ce..ab8d0536dbad6970473906a5856e876df969c497 100644 (file)
@@ -109,7 +109,7 @@ operand;
 #define IC_TRUE(x)   (x)->ulrrcnd.cnd.trueLabel
 #define IC_FALSE(x)  (x)->ulrrcnd.cnd.falseLabel
 #define IC_LABEL(x)  (x)->argLabel.label
-#define IC_ARGS(x)   (x)->argLabel.args
+// jwk #define IC_ARGS(x)   (x)->argLabel.args
 #define IC_JTCOND(x) (x)->ulrrcnd.jmpTab.condition
 #define IC_JTLABELS(x) (x)->ulrrcnd.jmpTab.labels
 #define IC_INLINE(x) (x)->inlineAsm
@@ -169,7 +169,7 @@ typedef struct iCode
     union
       {
        symbol *label;          /* for a goto statement     */
-       value *args;            /* for a function */
+       // jwk value *args;            /* for a function */
       }
     argLabel;
 
@@ -262,6 +262,7 @@ iCodeTable;
 #define ASSIGNMENT_TO_SELF(ic) (!POINTER_SET(ic) && !POINTER_GET(ic) && \
                                ic->op == '=' && IC_RESULT(ic)->key == IC_RIGHT(ic)->key )
 
+#define IS_CAST_ICODE(ic) (ic && ic->op == CAST)
 #define SET_ISADDR(op,v) {op = operandFromOperand(op); op->isaddr = v;}
 #define SET_RESULT_RIGHT(ic) {SET_ISADDR(IC_RIGHT(ic),0); SET_ISADDR(IC_RESULT(ic),0);}