xref: /NextBSD/contrib/gcc/config/fixunsdfsi.c (revision eb1a5f8de9f7ea602c373a710f531abbf81141c4)
1 /* Public domain.  */
2 typedef unsigned int USItype __attribute__ ((mode (SI)));
3 typedef int SItype __attribute__ ((mode (SI)));
4 typedef float SFtype __attribute__ ((mode (SF)));
5 typedef float DFtype __attribute__ ((mode (DF)));
6 
7 USItype __fixunsdfsi (DFtype);
8 
9 #define SItype_MIN \
10   (- ((SItype) (((USItype) 1 << ((sizeof (SItype) * 8) - 1)) - 1)) - 1)
11 
12 USItype
__fixunsdfsi(DFtype a)13 __fixunsdfsi (DFtype a)
14 {
15   if (a >= - (DFtype) SItype_MIN)
16     return (SItype) (a + SItype_MIN) - SItype_MIN;
17   return (SItype) a;
18 }
19