aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/fixunstfdi.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/fixunstfdi.c')
-rw-r--r--gcc/config/fixunstfdi.c35
1 files changed, 0 insertions, 35 deletions
diff --git a/gcc/config/fixunstfdi.c b/gcc/config/fixunstfdi.c
deleted file mode 100644
index 4a0012a..0000000
--- a/gcc/config/fixunstfdi.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Public domain. */
-#if __LDBL_MANT_DIG__ == 106 || __LDBL_MANT_DIG__ == 113
-typedef int DItype __attribute__ ((mode (DI)));
-typedef int SItype __attribute__ ((mode (SI)));
-typedef unsigned int UDItype __attribute__ ((mode (DI)));
-typedef unsigned int USItype __attribute__ ((mode (SI)));
-typedef float TFtype __attribute__ ((mode (TF)));
-
-DItype __fixunstfdi (TFtype);
-
-DItype
-__fixunstfdi (TFtype a)
-{
- if (a < 0)
- return 0;
-
- /* Compute high word of result, as a flonum. */
- const TFtype b = (a / (((UDItype) 1) << (sizeof (SItype) * 8)));
- /* Convert that to fixed (but not to DItype!),
- and shift it into the high word. */
- UDItype v = (USItype) b;
- v <<= (sizeof (SItype) * 8);
- /* Remove high part from the TFtype, leaving the low part as flonum. */
- a -= (TFtype) v;
- /* Convert that to fixed (but not to DItype!) and add it in.
- Sometimes A comes out negative. This is significant, since
- A has more bits than a long int does. */
- if (a < 0)
- v -= (USItype) (-a);
- else
- v += (USItype) a;
- return v;
-}
-
-#endif