/* since the pack the registers depending strictly on the MCU */
/*-----------------------------------------------------------------*/
-extern void gen390Code(iCode *);
-
/* Global data */
static struct {
bitVect *spiltSet;
used in the remainder of the block */
if (!_G.blockSpil && (selectS = liveRangesWith(lrcs,notUsedInRemaining,ebp,ic))) {
sym = leastUsedLR (selectS);
- if (!sym->remat) {
- sym->remainSpil = 1;
- _G.blockSpil++;
+ if (sym != forSym) {
+ if (!sym->remat) {
+ sym->remainSpil = 1;
+ _G.blockSpil++;
+ }
+ return sym;
}
- return sym;
}
}
bitVectnBitsOn(OP_DEFS(IC_RESULT(ic))) == 1 &&
IS_OP_LITERAL(IC_RIGHT(ic))) ) {
- int i = operandLitValue(IC_RIGHT(ic));
+ //int i = operandLitValue(IC_RIGHT(ic));
OP_SYMBOL(IC_RESULT(ic))->remat = 1;
OP_SYMBOL(IC_RESULT(ic))->rematiCode = ic;
OP_SYMBOL(IC_RESULT(ic))->usl.spillLoc = NULL;
link *toType = operandType(IC_LEFT(ic));
if (IS_INTEGRAL(fromType) && IS_INTEGRAL(toType) &&
- getSize(fromType) != getSize(toType) ) {
+ getSize(fromType) != getSize(toType) &&
+ SPEC_USIGN(fromType) == SPEC_USIGN(toType)) {
iCode *dic = packRegsForOneuse(ic,IC_RIGHT(ic),ebp);
if (dic) {
if (options.dump_rassgn)
dumpEbbsToFileExt(".dumprassgn",ebbs,count);
+ /* do the overlaysegment stuff SDCCmem.c */
+ doOverlays(ebbs,count);
+
/* now get back the chain */
ic = iCodeLabelOptimize(iCodeFromeBBlock (ebbs,count));