diff options
Diffstat (limited to 'arch/mips/lib/cmpdi2.c')
-rw-r--r-- | arch/mips/lib/cmpdi2.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/mips/lib/cmpdi2.c b/arch/mips/lib/cmpdi2.c new file mode 100644 index 000000000000..8c1306437ed1 --- /dev/null +++ b/arch/mips/lib/cmpdi2.c | |||
@@ -0,0 +1,27 @@ | |||
1 | #include <linux/module.h> | ||
2 | |||
3 | #include "libgcc.h" | ||
4 | |||
5 | word_type __cmpdi2(long long a, long long b) | ||
6 | { | ||
7 | const DWunion au = { | ||
8 | .ll = a | ||
9 | }; | ||
10 | const DWunion bu = { | ||
11 | .ll = b | ||
12 | }; | ||
13 | |||
14 | if (au.s.high < bu.s.high) | ||
15 | return 0; | ||
16 | else if (au.s.high > bu.s.high) | ||
17 | return 2; | ||
18 | |||
19 | if ((unsigned int) au.s.low < (unsigned int) bu.s.low) | ||
20 | return 0; | ||
21 | else if ((unsigned int) au.s.low > (unsigned int) bu.s.low) | ||
22 | return 2; | ||
23 | |||
24 | return 1; | ||
25 | } | ||
26 | |||
27 | EXPORT_SYMBOL(__cmpdi2); | ||