a fix from Jesus Calvino-Fraga (jesusc@interchange.ubc.ca)
authorjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 11 Dec 2001 13:33:45 +0000 (13:33 +0000)
committerjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 11 Dec 2001 13:33:45 +0000 (13:33 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1672 4a8a32a2-be11-0410-ad9d-d568d2c75423

device/lib/_fsgt.c
device/lib/_fslt.c
device/lib/vprintf.c

index d5a67a0e39faed8678c3964704cf5835d6268c6e..2397df7b7acd7f7617038d19e84a6b953ed5bc2b 100644 (file)
@@ -32,13 +32,11 @@ char __fsgt (float a1, float a2)
   fl1.f = a1;
   fl2.f = a2;
 
-#if 0
-  if (fl1.l<0 && fl2.l<0)
-    {
-      fl1.l ^= SIGNBIT;
-      fl2.l ^= SIGNBIT;
-    }
-#endif
+  if (fl1.l<0 && fl2.l<0) {
+    if (fl2.l > fl1.l)
+      return (1);
+    return (0);
+  }
 
   if (fl1.l > fl2.l)
     return (1);
index 1661a648659d98a4ae10b6bbd771140489bbcfb0..510d6352126cc2c87c47f9d84dec8dcfffbcb2b7 100644 (file)
@@ -32,13 +32,11 @@ char __fslt (float a1, float a2)
   fl1.f = a1;
   fl2.f = a2;
 
-#if 0
-  if (fl1.l<0 && fl2.l<0)
-    {
-      fl1.l ^= SIGNBIT;
-      fl2.l ^= SIGNBIT;
-    }
-#endif
+  if (fl1.l<0 && fl2.l<0) {
+    if (fl2.l < fl1.l)
+      return (1);
+    return (0);
+  }
 
   if (fl1.l < fl2.l)
     return (1);
index ebecea35c529865a5869069143be0d082e55eb12..15db10700e9011ebe9abcec1283486e1d3923869 100644 (file)
@@ -159,17 +159,6 @@ _endasm;
 
 #define DEFAULT_FLOAT_PRECISION 6
 
-float output_floatE(float f, char decimals)
-{
-  signed char exp;
-  char sign = '+';
-
-  if (f < 0) { f = -f; sign = '-'; }
-  for (exp = 0; f >= 10.0; exp++) f /=10.0;
-  for (       ; f < 1.0;   exp--) f *=10.0;
-  printf("%c%d.%d%fe%d\n", sign, decimals+2, decimals, f, exp); 
-} 
-
 static void output_float (float f, unsigned char reqWidth, 
                          signed char reqDecimals,
                          bit left, bit zero, bit sign, bit space)