* src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
authorvrokas <vrokas@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 12 Mar 2005 10:39:48 +0000 (10:39 +0000)
committervrokas <vrokas@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 12 Mar 2005 10:39:48 +0000 (10:39 +0000)
left is a bitfield, if yes, then don't optimize assignment. Perhaps
this can be optimized more?

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3693 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCCcse.c

index 7e93e65042ab9f3509e3f37f9bce0e638ca2423d..808c82c8c1af72c48fcb48bcf2a6f8063402e90c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+       * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
+       left is a bitfield, if yes, then don't optimize assignment. Perhaps
+       this can be optimized more?
+
 2005-03-10 Raphael Neider <rneider AT web.de>
 
        * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
index 2838765943e4c7a958858461c51af39824803762..1e07bb45572b067f83df969f7e56c90abfd3f9de 100644 (file)
@@ -1995,6 +1995,7 @@ cseBBlock (eBBlock * ebb, int computeOnly,
       /* left operand */
       /* and left is a symbol  */
       if (IS_SYMOP (IC_LEFT (ic)) &&
+          !IS_BITFIELD (OP_SYM_ETYPE (IC_LEFT (ic))) &&
           !computeOnly && ic->op != ADDRESS_OF)
         {