summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/microblaze/floatlib.h
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/microblaze/floatlib.h')
-rw-r--r--libc/sysdeps/linux/microblaze/floatlib.h140
1 files changed, 0 insertions, 140 deletions
diff --git a/libc/sysdeps/linux/microblaze/floatlib.h b/libc/sysdeps/linux/microblaze/floatlib.h
deleted file mode 100644
index 817ba7de0..000000000
--- a/libc/sysdeps/linux/microblaze/floatlib.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
-** libgcc support for software floating point.
-** Copyright (C) 1991 by Pipeline Associates, Inc. All rights reserved.
-** Permission is granted to do *anything* you want with this file,
-** commercial or otherwise, provided this message remains intact. So there!
-** I would appreciate receiving any updates/patches/changes that anyone
-** makes, and am willing to be the repository for said changes (am I
-** making a big mistake?).
-
-Warning! Only single-precision is actually implemented. This file
-won't really be much use until double-precision is supported.
-
-However, once that is done, this file might eventually become a
-replacement for libgcc1.c. It might also make possible
-cross-compilation for an IEEE target machine from a non-IEEE
-host such as a VAX.
-
-If you'd like to work on completing this, please talk to rms@gnu.ai.mit.edu.
-
---> Double precision floating support added by James Carlson on 20 April 1998.
-
-**
-** Pat Wood
-** Pipeline Associates, Inc.
-** pipeline!phw@motown.com or
-** sun!pipeline!phw or
-** uunet!motown!pipeline!phw
-**
-** 05/01/91 -- V1.0 -- first release to gcc mailing lists
-** 05/04/91 -- V1.1 -- added float and double prototypes and return values
-** -- fixed problems with adding and subtracting zero
-** -- fixed rounding in truncdfsf2
-** -- fixed SWAP define and tested on 386
-*/
-
-/*
-** The following are routines that replace the libgcc soft floating point
-** routines that are called automatically when -msoft-float is selected.
-** The support single and double precision IEEE format, with provisions
-** for byte-swapped machines (tested on 386). Some of the double-precision
-** routines work at full precision, but most of the hard ones simply punt
-** and call the single precision routines, producing a loss of accuracy.
-** long long support is not assumed or included.
-** Overall accuracy is close to IEEE (actually 68882) for single-precision
-** arithmetic. I think there may still be a 1 in 1000 chance of a bit
-** being rounded the wrong way during a multiply. I'm not fussy enough to
-** bother with it, but if anyone is, knock yourself out.
-**
-** Efficiency has only been addressed where it was obvious that something
-** would make a big difference. Anyone who wants to do this right for
-** best speed should go in and rewrite in assembler.
-**
-** I have tested this only on a 68030 workstation and 386/ix integrated
-** in with -msoft-float.
-*/
-
-#ifndef __FLOAT_LIB_H__
-#define __FLOAT_LIB_H__
-/* the following deal with IEEE single-precision numbers */
-#define EXCESS 126
-#define SIGNBIT 0x80000000
-#define HIDDEN (1 << 23)
-#define SIGN(fp) ((fp) & SIGNBIT)
-#define EXP(fp) (((fp) >> 23) & 0xFF)
-#define MANT(fp) (((fp) & 0x7FFFFF) | HIDDEN)
-#define PACK(s,e,m) ((s) | ((e) << 23) | (m))
-
-/* the following deal with IEEE double-precision numbers */
-#define EXCESSD 1022
-#define HIDDEND (1 << 20)
-#define EXPD(fp) (((fp.l.upper) >> 20) & 0x7FF)
-#define SIGND(fp) ((fp.l.upper) & SIGNBIT)
-#define MANTD(fp) (((((fp.l.upper) & 0xFFFFF) | HIDDEND) << 10) | \
- (fp.l.lower >> 22))
-#define HIDDEND_LL ((long long)1 << 52)
-#define MANTD_LL(fp) ((fp.ll & (HIDDEND_LL-1)) | HIDDEND_LL)
-#define PACKD_LL(s,e,m) (((long long)((s)+((e)<<20))<<32)|(m))
-
-/* define SWAP for 386/960 reverse-byte-order brain-damaged CPUs */
-union double_long {
- double d;
-#ifdef SWAP
- struct {
- unsigned long lower;
- long upper;
- } l;
-#else
- struct {
- long upper;
- unsigned long lower;
- } l;
-#endif
- long long ll;
-};
-
-union float_long
- {
- float f;
- long l;
- };
-
-#endif
-
-/* Functions defined in different files */
-
-float __addsf3 (float, float);
-float __subsf3 (float, float);
-long __cmpsf2 (float, float);
-float __mulsf3 (float, float);
-float __divsf3 (float, float);
-double __floatsidf (register long);
-double __floatdidf (register long long);
-float __floatsisf (register long );
-float __floatdisf (register long long );
-float __negsf2 (float);
-double __negdf2 (double);
-double __extendsfdf2 (float);
-float __truncdfsf2 (double);
-long __cmpdf2 (double, double);
-long __fixsfsi (float);
-long __fixdfsi (double);
-long long __fixdfdi (double);
-unsigned long __fixunsdfsi (double);
-unsigned long long __fixunsdfdi (double);
-double __adddf3 (double, double);
-double __subdf3 (double, double);
-double __muldf3 (double, double);
-double __divdf3 (double, double);
-int __gtdf2 (double, double);
-int __gedf2 (double, double);
-int __ltdf2 (double, double);
-int __ledf2 (double, double);
-int __eqdf2 (double, double);
-int __nedf2 (double, double);
-int __gtsf2 (float, float);
-int __gesf2 (float, float);
-int __ltsf2 (float, float);
-int __lesf2 (float, float);
-int __eqsf2 (float, float);
-int __nesf2 (float, float);