Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[platform/kernel/linux-starfive.git] / lib / ucmpdi2.c
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  */
4
5 #include <linux/module.h>
6 #include <linux/libgcc.h>
7
8 word_type notrace __ucmpdi2(unsigned long long a, unsigned long long b)
9 {
10         const DWunion au = {.ll = a};
11         const DWunion bu = {.ll = b};
12
13         if ((unsigned int) au.s.high < (unsigned int) bu.s.high)
14                 return 0;
15         else if ((unsigned int) au.s.high > (unsigned int) bu.s.high)
16                 return 2;
17         if ((unsigned int) au.s.low < (unsigned int) bu.s.low)
18                 return 0;
19         else if ((unsigned int) au.s.low > (unsigned int) bu.s.low)
20                 return 2;
21         return 1;
22 }
23 EXPORT_SYMBOL(__ucmpdi2);