* src/mcs51/gen.c (gencjneshort): fixed bug #760345
authorbernhardheld <bernhardheld@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 25 Jun 2003 19:19:03 +0000 (19:19 +0000)
committerbernhardheld <bernhardheld@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 25 Jun 2003 19:19:03 +0000 (19:19 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2714 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/mcs51/gen.c

index 4f971d364a9f86a99cbb909724315fdad41a797d..fd21ca5aebc9fab4d080c69e5411cb0dfc9b1154 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2003-06-25  Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/mcs51/gen.c (gencjneshort): fixed bug #760345
+
 2003-06-20  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
 
        * as/mcs51/aomf51.c: Make sure the size of the last procedure is correct.
index 235eeeb2f7de8a991b2dd4c19b5c02a2ea598ccc..4430a68fa633c5f456c926fdb133872ffe5a8504 100644 (file)
@@ -4192,7 +4192,8 @@ gencjneshort (operand * left, operand * right, symbol * lbl)
 
   /* if the right side is a literal then anything goes */
   if (AOP_TYPE (right) == AOP_LIT &&
-      AOP_TYPE (left) != AOP_DIR)
+      AOP_TYPE (left) != AOP_DIR  &&
+      AOP_TYPE (left) != AOP_IMMD)
     {
       while (size--)
        {
@@ -4208,6 +4209,7 @@ gencjneshort (operand * left, operand * right, symbol * lbl)
      if the left is a pointer register & right is not */
   else if (AOP_TYPE (right) == AOP_REG ||
           AOP_TYPE (right) == AOP_DIR ||
+          AOP_TYPE (right) == AOP_LIT ||
           (AOP_TYPE (left) == AOP_DIR && AOP_TYPE (right) == AOP_LIT) ||
           (IS_AOP_PREG (left) && !IS_AOP_PREG (right)))
     {