GNU Linux-libre 4.4.297-gnu1
[releases.git] / arch / mips / lib / libgcc.h
1 #ifndef __ASM_LIBGCC_H
2 #define __ASM_LIBGCC_H
3
4 #include <asm/byteorder.h>
5
6 typedef int word_type __attribute__ ((mode (__word__)));
7
8 #ifdef __BIG_ENDIAN
9 struct DWstruct {
10         int high, low;
11 };
12
13 struct TWstruct {
14         long long high, low;
15 };
16 #elif defined(__LITTLE_ENDIAN)
17 struct DWstruct {
18         int low, high;
19 };
20
21 struct TWstruct {
22         long long low, high;
23 };
24 #else
25 #error I feel sick.
26 #endif
27
28 typedef union {
29         struct DWstruct s;
30         long long ll;
31 } DWunion;
32
33 #if defined(CONFIG_64BIT) && defined(CONFIG_CPU_MIPSR6)
34 typedef int ti_type __attribute__((mode(TI)));
35
36 typedef union {
37         struct TWstruct s;
38         ti_type ti;
39 } TWunion;
40 #endif
41
42 #endif /* __ASM_LIBGCC_H */