a better constant to type check
authorjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 25 Sep 2001 11:50:45 +0000 (11:50 +0000)
committerjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 25 Sep 2001 11:50:45 +0000 (11:50 +0000)
removed a temporary fix
filed a bug report, stating the real problem

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

src/mcs51/gen.c

index 394d9e5760ab7ddde3323016169b636d4ade407e..38c60a98bc3c590a9a716fd5a01045abae92079c 100644 (file)
@@ -1859,30 +1859,19 @@ genCall (iCode * ic)
           sic = setNextItem (_G.sendSet))
        {
          int size, offset = 0;
-         if (IS_VALOP(IC_LEFT(sic)) && IS_OP_LITERAL(IC_LEFT(sic)) 
-             // PENDING: checkConstant2Type()
-             // do some range checking here, just bitvars for now
-             && IS_BITVAR(IC_LEFT(sic)->operand.valOperand->type)) {
-           if (floatFromVal(IC_LEFT(sic)->operand.valOperand)) {
-             emitcode ("mov", "%s,#0x01", fReturn[0]);
-           } else {
-             emitcode ("mov", "%s,#0x00", fReturn[0]);
+         aopOp (IC_LEFT (sic), sic, FALSE);
+         size = AOP_SIZE (IC_LEFT (sic));
+         while (size--)
+           {
+             char *l = aopGet (AOP (IC_LEFT (sic)), offset,
+                               FALSE, FALSE);
+             if (strcmp (l, fReturn[offset]))
+               emitcode ("mov", "%s,%s",
+                         fReturn[offset],
+                         l);
+             offset++;
            }
-         } else {
-           aopOp (IC_LEFT (sic), sic, FALSE);
-           size = AOP_SIZE (IC_LEFT (sic));
-           while (size--)
-             {
-               char *l = aopGet (AOP (IC_LEFT (sic)), offset,
-                                 FALSE, FALSE);
-               if (strcmp (l, fReturn[offset]))
-                 emitcode ("mov", "%s,%s",
-                           fReturn[offset],
-                           l);
-               offset++;
-             }
-           freeAsmop (IC_LEFT (sic), NULL, sic, TRUE);
-         }
+         freeAsmop (IC_LEFT (sic), NULL, sic, TRUE);
        }
       _G.sendSet = NULL;
     }