diff options
| author | bjh21 <bjh21@NetBSD.org> | 2000-06-06 08:14:49 +0000 |
|---|---|---|
| committer | bjh21 <bjh21@NetBSD.org> | 2000-06-06 08:14:49 +0000 |
| commit | 4472dbe5e3bd91ef2540bada7a7ca7384627ff9b (patch) | |
| tree | 97a08b7679989cbe33efa7be7d08e0aca170599c /lib/libc/softfloat/softfloat-for-gcc.h | |
| parent | b5321a5a5c084fc20359800194b20c4ca2e8cfa5 (diff) | |
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
Diffstat (limited to 'lib/libc/softfloat/softfloat-for-gcc.h')
| -rw-r--r-- | lib/libc/softfloat/softfloat-for-gcc.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/libc/softfloat/softfloat-for-gcc.h b/lib/libc/softfloat/softfloat-for-gcc.h new file mode 100644 index 00000000000..b47e31e54d7 --- /dev/null +++ b/lib/libc/softfloat/softfloat-for-gcc.h @@ -0,0 +1,41 @@ +/* $NetBSD: softfloat-for-gcc.h,v 1.1 2000/06/06 08:15:07 bjh21 Exp $ */ + +/* + * Move private identifiers with external linkage into implementation + * namespace. -- Klaus Klein <kleink@netbsd.org>, May 5, 1999 + */ +#define float_exception_flags _softfloat_float_exception_flags +#define float_rounding_mode _softfloat_float_rounding_mode +#define float_raise _softfloat_float_raise +/* The following batch are called by GCC through wrappers */ +#define float32_eq _softfloat_float32_eq +#define float32_le _softfloat_float32_le +#define float32_lt _softfloat_float32_lt +#define float64_eq _softfloat_float64_eq +#define float64_le _softfloat_float64_le +#define float64_lt _softfloat_float64_lt + +/* + * Macros to define functions with the GCC expected names + */ + +#define float32_add __addsf3 +#define float64_add __adddf3 +#define float32_sub __subsf3 +#define float64_sub __subdf3 +#define float32_mul __mulsf3 +#define float64_mul __muldf3 +#define float32_div __divsf3 +#define float64_div __divdf3 +#define int32_to_float32 __floatsisf +#define int32_to_float64 __floatsidf +#define int64_to_float32 __floatdisf +#define int64_to_float64 __floatdidf +#define float32_to_int32_round_to_zero __fixsfsi +#define float64_to_int32_round_to_zero __fixdfsi +#define float32_to_int64_round_to_zero __fixsfdi +#define float64_to_int64_round_to_zero __fixdfdi +/* #define float32_to_uint32_round_to_zero __fixunssfsi */ +/* #define float64_to_uint32_round_to_zero __fixunsdfsi */ +#define float32_to_float64 __extendsfdf2 +#define float64_to_float32 __truncdfsf2 |
