1typedef union longlong
2{
3  struct {unsigned short h0, h1, h2, h3;} h;
4  struct {signed long low, high;} si;
5  struct {unsigned long low, high;} ui;
6  signed long long sll;
7  unsigned long long ull;
8} long_long;
9
10
11long long
12__negdi2 (u)
13     long long u;
14{
15  long_long uu;
16
17  uu.sll = u;
18
19  uu.si.low = -uu.si.low;
20  if (uu.si.low == 0)
21    uu.si.high = -uu.si.high;
22  else
23    uu.si.high = ~uu.si.high;
24
25  return uu.sll;
26}
27