fixed the
[fw/sdcc] / src / SDCCcse.c
index b02adc0e708917510a9424c6d523ec99fc410ac5..a092c70310abcdf37c29663957992e86ca7ac6b9 100644 (file)
@@ -300,7 +300,10 @@ DEFSETFUNC (findCheaperOp)
       IS_ITEMP (IC_RESULT (cdp->diCode)))
     *opp = IC_RESULT (cdp->diCode);
 
-  if ((*opp)&&(SPEC_USIGN(operandType (cop))==SPEC_USIGN(operandType (*opp))))
+  if ((*opp) && 
+      (SPEC_USIGN(operandType (cop))==SPEC_USIGN(operandType (*opp))) &&
+      (SPEC_SHORT(operandType (cop))==SPEC_SHORT(operandType (*opp))) &&
+      (SPEC_LONG(operandType (cop))==SPEC_LONG(operandType (*opp))))
     {
 
       if ((isGlobalInNearSpace (cop) &&