summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
b48a918)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1649
4a8a32a2-be11-0410-ad9d-
d568d2c75423
void checkConstantRange(sym_link *ltype, value *val, char *msg,
int pedantic) {
double max;
void checkConstantRange(sym_link *ltype, value *val, char *msg,
int pedantic) {
double max;
int warnings=0;
int negative=0;
long v;
int warnings=0;
int negative=0;
long v;
/* since the pack the registers depending strictly on the MCU */
/*-----------------------------------------------------------------*/
/* since the pack the registers depending strictly on the MCU */
/*-----------------------------------------------------------------*/
/* Global data */
static struct
{
/* Global data */
static struct
{
if (sym->uptr && !sym->ruonly && getSize(sym->type) < 4) {
if (packRegsDPTRuse(operandFromSymbol(sym))) {
if (sym->uptr && !sym->ruonly && getSize(sym->type) < 4) {
if (packRegsDPTRuse(operandFromSymbol(sym))) {
- printf("FILL GAPS: found more DPTR use for %s in func %s\n",sym->name, currFunc ? currFunc->name : "UNKNOWN");
+ D (printf ("FILL GAPS: found more DPTR use for %s in func %s\n",sym->name, currFunc ? currFunc->name : "UNKNOWN"));
/* if this was ssigned to registers then */
if (bitVectBitValue(_G.totRegAssigned,sym->key)) {
/* if this was ssigned to registers then */
if (bitVectBitValue(_G.totRegAssigned,sym->key)) {
sym->regs[i] = NULL;
}
freeAllRegs();
sym->regs[i] = NULL;
}
freeAllRegs();
- printf("Fill Gap gave up due to positioning for %s in function %s\n",sym->name, currFunc ? currFunc->name : "UNKNOWN");
+ D (printf ("Fill Gap gave up due to positioning for %s in function %s\n",sym->name, currFunc ? currFunc->name : "UNKNOWN"));
- printf("FILLED GAP for %s in function %s\n",sym->name, currFunc ? currFunc->name : "UNKNOWN");
+ D (printf ("FILLED GAP for %s in function %s\n",sym->name, currFunc ? currFunc->name : "UNKNOWN"));
_G.totRegAssigned = bitVectSetBit(_G.totRegAssigned,sym->key);
sym->isspilt = sym->spillA = 0 ;
sym->usl.spillLoc->allocreq--;
_G.totRegAssigned = bitVectSetBit(_G.totRegAssigned,sym->key);
sym->isspilt = sym->spillA = 0 ;
sym->usl.spillLoc->allocreq--;
static bool cseCostEstimation (iCode *ic, iCode *pdic)
{
operand *result = IC_RESULT(ic);
static bool cseCostEstimation (iCode *ic, iCode *pdic)
{
operand *result = IC_RESULT(ic);
- operand *right = IC_RIGHT(ic);
- operand *left = IC_LEFT(ic);
sym_link *result_type = operandType(result);
sym_link *result_type = operandType(result);
- sym_link *right_type = (right ? operandType(right) : 0);
- sym_link *left_type = (left ? operandType(left) : 0);
/* if it is a pointer then return ok for now */
if (IC_RESULT(ic) && IS_PTR(result_type)) return 1;
/* if it is a pointer then return ok for now */
if (IC_RESULT(ic) && IS_PTR(result_type)) return 1;
aopDump(const char *plabel, asmop *aop)
{
emitDebug("; Dump of %s: type %s size %u", plabel, aopNames[aop->type], aop->size);
aopDump(const char *plabel, asmop *aop)
{
emitDebug("; Dump of %s: type %s size %u", plabel, aopNames[aop->type], aop->size);
/* force a new aop if sizes differ */
sym->usl.spillLoc->aop = NULL;
}
/* force a new aop if sizes differ */
sym->usl.spillLoc->aop = NULL;
}
+ sym->aop = op->aop = aop =
aopForSym (ic, sym->usl.spillLoc, result, requires_a);
wassertl (aop->size >= getSize (sym->type), "Operand doesn't fit in the spill location");
aop->size = getSize (sym->type);
aopForSym (ic, sym->usl.spillLoc, result, requires_a);
wassertl (aop->size >= getSize (sym->type), "Operand doesn't fit in the spill location");
aop->size = getSize (sym->type);
genBuiltInMemcpy (iCode *ic, int nParams, operand **pparams)
{
operand *from, *to, *count;
genBuiltInMemcpy (iCode *ic, int nParams, operand **pparams)
{
operand *from, *to, *count;
wassertl (nParams == 3, "Built-in memcpy must have two parameters");
to = pparams[2];
wassertl (nParams == 3, "Built-in memcpy must have two parameters");
to = pparams[2];