projects
/
fw
/
sdcc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* src/pic16/gen.c (genNearPointerSet): fixed handling of literals
[fw/sdcc]
/
src
/
SDCCicode.h
diff --git
a/src/SDCCicode.h
b/src/SDCCicode.h
index 2968911f04d037a4276af6add82262cb67c81862..a05c67c478135e113070735bee2db4a6ca054a97 100644
(file)
--- a/
src/SDCCicode.h
+++ b/
src/SDCCicode.h
@@
-61,7
+61,7
@@
OPTYPE;
#define LRTYPE LRFTYPE LRETYPE
#define IS_ITEMP(op) (IS_SYMOP(op) && op->operand.symOperand->isitmp == 1)
#define IS_PARM(op) (IS_SYMOP(op) && op->operand.symOperand->_isparm)
#define LRTYPE LRFTYPE LRETYPE
#define IS_ITEMP(op) (IS_SYMOP(op) && op->operand.symOperand->isitmp == 1)
#define IS_PARM(op) (IS_SYMOP(op) && op->operand.symOperand->_isparm)
-#define IS_ITEMPLBL(op) (IS_ITEMP(op) && op->operand.symOperand->isilbl == 1)
;
+#define IS_ITEMPLBL(op) (IS_ITEMP(op) && op->operand.symOperand->isilbl == 1)
#define IS_OP_VOLATILE(op) (IS_SYMOP(op) && op->isvolatile)
#define IS_OP_LITERAL(op) (op && op->isLiteral)
#define IS_OP_GLOBAL(op) (IS_SYMOP(op) && op->isGlobal)
#define IS_OP_VOLATILE(op) (IS_SYMOP(op) && op->isvolatile)
#define IS_OP_LITERAL(op) (op && op->isLiteral)
#define IS_OP_GLOBAL(op) (IS_SYMOP(op) && op->isGlobal)
@@
-201,7
+201,7
@@
typedef struct icodeFuncTable
{
int icode;
char *printName;
{
int icode;
char *printName;
- void (*iCodePrint) (
FILE
*, iCode *, char *);
+ void (*iCodePrint) (
struct dbuf_s
*, iCode *, char *);
iCode *(*iCodeCopy) (iCode *);
}
iCodeTable;
iCode *(*iCodeCopy) (iCode *);
}
iCodeTable;
@@
-211,9
+211,7
@@
iCodeTable;
x->op == LABEL || \
x->op == FUNCTION || \
x->op == INLINEASM || \
x->op == LABEL || \
x->op == FUNCTION || \
x->op == INLINEASM || \
- x->op == ENDFUNCTION || \
- x->op == CRITICAL || \
- x->op == ENDCRITICAL )
+ x->op == ENDFUNCTION )
#define SKIP_IC1(x) (x->op == CALL || \
SKIP_IC2(x) )
#define SKIP_IC1(x) (x->op == CALL || \
SKIP_IC2(x) )
@@
-225,6
+223,8
@@
iCodeTable;
x->op == RECEIVE || \
x->op == ARRAYINIT || \
SKIP_IC1(x) || \
x->op == RECEIVE || \
x->op == ARRAYINIT || \
SKIP_IC1(x) || \
+ x->op == CRITICAL || \
+ x->op == ENDCRITICAL || \
x->op == SEND )
#define SKIP_IC3(x) (SKIP_IC2(x) || \
x->op == SEND )
#define SKIP_IC3(x) (SKIP_IC2(x) || \
@@
-256,6
+256,14
@@
iCodeTable;
x->op == '|' || \
x->op == '^'))
x->op == '|' || \
x->op == '^'))
+#define IS_ASSOCIATIVE(x) (x && (x->op == EQ_OP || \
+ x->op == NE_OP || \
+ x->op == '+' || \
+ x->op == '*' || \
+ x->op == BITWISEAND || \
+ x->op == '|' || \
+ x->op == '^'))
+
#define ASSIGNMENT(ic) ( ic && ic->op == '=')
#define ASSIGN_SYM_TO_ITEMP(ic) (ic && ic->op == '=' && \
#define ASSIGNMENT(ic) ( ic && ic->op == '=')
#define ASSIGN_SYM_TO_ITEMP(ic) (ic && ic->op == '=' && \
@@
-310,7
+318,8
@@
int isParameterToCall (value *, operand *);
iCode *newiCodeLabelGoto (int, symbol *);
symbol *newiTemp (char *);
symbol *newiTempLabel (char *);
iCode *newiCodeLabelGoto (int, symbol *);
symbol *newiTemp (char *);
symbol *newiTempLabel (char *);
-symbol *newiTempPreheaderLabel ();
+#define LOOPEXITLBL "loopExitLbl"
+symbol *newiTempLoopHeaderLabel (bool);
iCode *newiCode (int, operand *, operand *);
sym_link *operandType (operand *);
operand *operandFromValue (value *);
iCode *newiCode (int, operand *, operand *);
sym_link *operandType (operand *);
operand *operandFromValue (value *);
@@
-319,9
+328,11
@@
operand *operandFromLink (sym_link *);
sym_link *aggrToPtr (sym_link *, bool);
int aggrToPtrDclType (sym_link *, bool);
int piCode (void *, FILE *);
sym_link *aggrToPtr (sym_link *, bool);
int aggrToPtrDclType (sym_link *, bool);
int piCode (void *, FILE *);
+int dbuf_printOperand (operand *, struct dbuf_s *);
int printOperand (operand *, FILE *);
void setOperandType (operand *, sym_link *);
bool isOperandInFarSpace (operand *);
int printOperand (operand *, FILE *);
void setOperandType (operand *, sym_link *);
bool isOperandInFarSpace (operand *);
+bool isOperandInPagedSpace (operand *);
bool isOperandInDirSpace (operand *);
bool isOperandInCodeSpace (operand *);
operand *opFromOpWithDU (operand *, bitVect *, bitVect *);
bool isOperandInDirSpace (operand *);
bool isOperandInCodeSpace (operand *);
operand *opFromOpWithDU (operand *, bitVect *, bitVect *);