| typedef union longlong | |
| { | |
| struct {unsigned short h0, h1, h2, h3;} h; | |
| struct {signed long low, high;} si; | |
| struct {unsigned long low, high;} ui; | |
| signed long long sll; | |
| unsigned long long ull; | |
| } long_long; | |
| long long | |
| __negdi2 (u) | |
| long long u; | |
| { | |
| long_long uu; | |
| uu.sll = u; | |
| uu.si.low = -uu.si.low; | |
| if (uu.si.low == 0) | |
| uu.si.high = -uu.si.high; | |
| else | |
| uu.si.high = ~uu.si.high; | |
| return uu.sll; | |
| } |