Drop GCC < 1 support, simplify inline assembly and use proper #error for
authorJoerg Sonnenberger <joerg@dragonflybsd.org>
Tue, 26 Jul 2005 14:56:04 +0000 (14:56 +0000)
committerJoerg Sonnenberger <joerg@dragonflybsd.org>
Tue, 26 Jul 2005 14:56:04 +0000 (14:56 +0000)
!GCC case.

lib/libc/i386/gen/ldexp.c

index b014b3e..0411177 100644 (file)
@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/i386/gen/ldexp.c,v 1.6 1999/08/27 23:59:21 peter Exp $
- * $DragonFly: src/lib/libc/i386/gen/ldexp.c,v 1.3 2003/12/06 03:11:35 drhodus Exp $
+ * $DragonFly: src/lib/libc/i386/gen/ldexp.c,v 1.4 2005/07/26 14:56:04 joerg Exp $
  */
 
 /*
  * (stupid 8087!).
  */
 double
-ldexp (double value, int exp)
+ldexp (double value, int expo)
 {
-       double temp, texp, temp2;
-       texp = exp;
+       double temp;
 #ifdef __GNUC__
-#if    __GNUC__ >= 2
-       asm ("fscale "
-               : "=u" (temp2), "=t" (temp)
-               : "0" (texp), "1" (value));
+       __asm ("fscale"
+               : "=t" (temp)
+               : "0" (value), "u" ((double)expo));
 #else
-       asm ("fscale ; fxch %%st(1) ; fstp%L1 %1 "
-               : "=f" (temp), "=0" (temp2)
-               : "0" (texp), "f" (value));
-#endif
-#else
-error unknown asm
+#error "Compiler not supported"
 #endif
        return (temp);
 }