summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/config/fixunsdfsi.c
blob: fe7a4f8ab04eae9351c036a6fe7544fcee018e69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* Public domain.  */
typedef unsigned int USItype __attribute__ ((mode (SI)));
typedef int SItype __attribute__ ((mode (SI)));
typedef float SFtype __attribute__ ((mode (SF)));
typedef float DFtype __attribute__ ((mode (DF)));

USItype __fixunsdfsi (DFtype);

#define SItype_MIN \
  (- ((SItype) (((USItype) 1 << ((sizeof (SItype) * 8) - 1)) - 1)) - 1)

USItype
__fixunsdfsi (DFtype a)
{
  if (a >= - (DFtype) SItype_MIN)
    return (SItype) (a + SItype_MIN) - SItype_MIN;
  return (SItype) a;
}
OpenPOWER on IntegriCloud