* src/mcs51/gen.c (genDataPointerSet): use max of size of right and result
authorMaartenBrock <MaartenBrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 13 Jul 2007 21:10:11 +0000 (21:10 +0000)
committerMaartenBrock <MaartenBrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 13 Jul 2007 21:10:11 +0000 (21:10 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4883 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/mcs51/gen.c

index a053bc9fbd3f065c55b2b74d7f01c9212bbd809f..7b4a91e46d45c03ca6d0e3ba7677c957ccabbb7f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,7 +7,7 @@
        * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
          added operandSize prototype
        * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
-         (genDataPointerSet): use size of result,
+         (genDataPointerSet): use max of size of right and result,
          (gencjne): added parameter useCarry for optimization,
          (genCmpEq): use carry if appropriate,
          (genXor): check if operand already in carry
index dd0eb5a88bba1e2c69fef266db94f8429d1e4c4a..cb42cdeb452318abcb8b476399b5a11f9d480c34 100644 (file)
@@ -7455,7 +7455,7 @@ genXor (iCode * ic, iCode * ifx)
           if (AOP_TYPE (right) == AOP_CRY)
             {
               // c = bit ^ bit;
-              if (IS_SYMOP (left) && OP_SYMBOL (left) && OP_SYMBOL (left)->accuse)
+              if (IS_OP_ACCUSE (left))
                 {// left already is in the carry
                   operand *tmp = right;
                   right = left;
@@ -7463,7 +7463,7 @@ genXor (iCode * ic, iCode * ifx)
                 }
               else
                 {
-                  emitcode ("mov", "c,%s", AOP (right)->aopu.aop_dir);
+                  toCarry (right);
                 }
             }
           else
@@ -10535,7 +10535,7 @@ genDataPointerSet (operand * right,
 
   l = aopGet (result, 0, FALSE, TRUE);
   l++; //remove #
-  size = AOP_SIZE (result);
+  size = max (AOP_SIZE (right), AOP_SIZE (result));
   while (size--)
     {
       if (offset)
@@ -10551,7 +10551,7 @@ genDataPointerSet (operand * right,
 }
 
 /*-----------------------------------------------------------------*/
-/* genNearPointerSet - emitcode for near pointer put                */
+/* genNearPointerSet - emitcode for near pointer put               */
 /*-----------------------------------------------------------------*/
 static void
 genNearPointerSet (operand * right,