int ikey = bitVectFirstBit(uses_defs);
iCode *uic = hTabItemWithKey(iCodehTab,ikey);
sym_link *otype = NULL;
+ bitVectUnSetBit(uses_defs,ikey);
if (!uic) continue;
otype = (IC_RIGHT(uic) ? operandType(IC_RIGHT(uic)) : NULL);
if (otype && IS_LITERAL(otype)) return 1;
- bitVectUnSetBit(uses_defs,ikey);
}
return 0;
}
if (POINTER_SET (ic))
OP_SYMBOL (IC_RESULT (ic))->uptr = 1;
- if (POINTER_GET (ic))
+ if (POINTER_GET (ic)) {
OP_SYMBOL (IC_LEFT (ic))->uptr = 1;
+ if (OP_SYMBOL (IC_LEFT(ic))->remat)
+ OP_SYMBOL (IC_RESULT (ic))->usl.spillLoc = NULL;
+ }
/* if the condition of an if instruction
is defined in the previous instruction then
else {
regsAVR[R26_IDX].type = (regsAVR[R26_IDX].type & ~REG_MASK) | REG_PTR;
regsAVR[R27_IDX].type = (regsAVR[R27_IDX].type & ~REG_MASK) | REG_PTR;
- regsAVR[R28_IDX].type = (regsAVR[R28_IDX].type & ~REG_MASK) | REG_PTR;
- regsAVR[R29_IDX].type = (regsAVR[R29_IDX].type & ~REG_MASK) | REG_PTR;
+ regsAVR[R30_IDX].type = (regsAVR[R30_IDX].type & ~REG_MASK) | REG_PTR;
+ regsAVR[R31_IDX].type = (regsAVR[R31_IDX].type & ~REG_MASK) | REG_PTR;
}
/* registers 0-1 / 24-25 used as scratch */