* src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
[fw/sdcc] / src / hc08 / ralloc.c
index a91e687fc5ad9c7febc5d482aebb26a6701b09f9..fdb71ba6422a3db1db57868927702abad57ecd63 100644 (file)
@@ -2538,7 +2538,8 @@ canDefAccResult (iCode * ic)
         {
         case LEFT_OP:
         case RIGHT_OP:
-          return isOperandLiteral (IC_RIGHT (ic));
+          return isOperandLiteral (IC_RIGHT (ic))
+                  && SPEC_USIGN (operandType (IC_RESULT (ic)));
         case CALL:
         case PCALL:
         case '*':