* src/SDCCmain.c,
authorepetrich <epetrich@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 23 Oct 2003 03:44:44 +0000 (03:44 +0000)
committerepetrich <epetrich@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 23 Oct 2003 03:44:44 +0000 (03:44 +0000)
* sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
* src/mcs51/gen.c (gencjneshort),
* src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
 more efficient (per Scott Bronson's suggestion)

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

sdccconf_in.h
src/SDCCmain.c
src/ds390/gen.c
src/mcs51/gen.c

index a34379dd6c0004400b35bfd026cf71568ccd3629..aa501882b0b84464ee23913fee3c2280e5c1a902 100644 (file)
@@ -68,6 +68,7 @@
 #undef OPT_DISABLE_PIC
 #undef OPT_DISABLE_PIC16
 #undef OPT_DISABLE_XA51
+#undef OPT_DISABLE_HC08
 
 #undef OPT_ENABLE_LIBGC
 
index 2002576ff8f922d86aa5f5941096b1e10f4e6133..b137bb2e0e7b34115005a3a56b05dec10fadcbdc 100644 (file)
@@ -303,8 +303,10 @@ static PORT *_ports[] =
 #endif
 #if !OPT_DISABLE_DS400
   &ds400_port, 
-#endif 
+#endif
+#if !OPT_DISABLE_HC08
   &hc08_port,
+#endif
 };
 
 #define NUM_PORTS (sizeof(_ports)/sizeof(_ports[0]))
index a6b6702454eb6b3c6a71e20069fda817e18e7113..c9af3592f3765074ae718c7decc91fac53ac7f03 100644 (file)
@@ -5660,6 +5660,7 @@ gencjneshort (operand * left, operand * right, symbol * lbl)
      if the right is in a pointer register and left
      is not */
   if ((AOP_TYPE (left) == AOP_LIT) ||
+      (AOP_TYPE (left) == AOP_IMMD) ||
       (IS_AOP_PREG (right) && !IS_AOP_PREG (left)))
     {
       operand *t = right;
@@ -5698,6 +5699,8 @@ 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 (right) == AOP_IMMD ||
           (AOP_TYPE (left) == AOP_DIR && AOP_TYPE (right) == AOP_LIT) ||
           (IS_AOP_PREG (left) && !IS_AOP_PREG (right)))
     {
index 34c178c00454d23ecfe80712a442eb4c09829d61..7f254ef7faf3b57d2bac33429a1d464dac8a36f7 100644 (file)
@@ -4263,12 +4263,14 @@ gencjneshort (operand * left, operand * right, symbol * lbl)
      if the right is in a pointer register and left
      is not */
   if ((AOP_TYPE (left) == AOP_LIT) ||
+      (AOP_TYPE (left) == AOP_IMMD) ||
       (IS_AOP_PREG (right) && !IS_AOP_PREG (left)))
     {
       operand *t = right;
       right = left;
       left = t;
     }
+  
   if (AOP_TYPE (right) == AOP_LIT)
     lit = (unsigned long) floatFromVal (AOP (right)->aopu.aop_lit);
 
@@ -4292,6 +4294,7 @@ gencjneshort (operand * left, operand * right, symbol * lbl)
   else if (AOP_TYPE (right) == AOP_REG ||
           AOP_TYPE (right) == AOP_DIR ||
           AOP_TYPE (right) == AOP_LIT ||
+           AOP_TYPE (right) == AOP_IMMD ||
           (AOP_TYPE (left) == AOP_DIR && AOP_TYPE (right) == AOP_LIT) ||
           (IS_AOP_PREG (left) && !IS_AOP_PREG (right)))
     {