summaryrefslogtreecommitdiff
path: root/lib/libc/softfloat/softfloat-for-gcc.h
diff options
context:
space:
mode:
authorbjh21 <bjh21@NetBSD.org>2000-06-06 08:14:49 +0000
committerbjh21 <bjh21@NetBSD.org>2000-06-06 08:14:49 +0000
commit4472dbe5e3bd91ef2540bada7a7ca7384627ff9b (patch)
tree97a08b7679989cbe33efa7be7d08e0aca170599c /lib/libc/softfloat/softfloat-for-gcc.h
parentb5321a5a5c084fc20359800194b20c4ca2e8cfa5 (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.h41
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