]> git.gag.com Git - fw/sdcc/blobdiff - src/avr/ralloc.c
Fixed a loop invariant bug & a casting bug
[fw/sdcc] / src / avr / ralloc.c
index dc2404f7277f683dbe134a44eec329b1274ed551..c039267511bdf1045d597f060146c190a158aa85 100644 (file)
@@ -2141,7 +2141,8 @@ static void packRegisters (eBBlock *ebp)
            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) {