fix for broken better shift in ad26.c line 207
authorkvigor <kvigor@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 7 May 2001 17:26:32 +0000 (17:26 +0000)
committerkvigor <kvigor@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 7 May 2001 17:26:32 +0000 (17:26 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@792 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/ds390/gen.c

index dc63df816aa7b6227086aff646a9a121b09172b4..5f66520f4de373d211358b0a6d8af28cfd012c62 100644 (file)
@@ -6665,22 +6665,25 @@ genlshTwo (operand * result, operand * left, int shCount)
       shCount -= 8;
 
       _startLazyDPSEvaluation();
-      aopPut (AOP (result), zero, LSB);
+
       if (size > 1)
        {
          if (shCount)
          {
            _endLazyDPSEvaluation();
            shiftL1Left2Result (left, LSB, result, MSB16, shCount);
+           aopPut (AOP (result), zero, LSB);       
          }
          else
          {
            movLeft2Result (left, LSB, result, MSB16, 0);
+           aopPut (AOP (result), zero, LSB);
            _endLazyDPSEvaluation();
          }
        }
        else
        {
+         aopPut (AOP (result), zero, LSB);
          _endLazyDPSEvaluation();
        }
   }