xref: /linux/lib/cmpdi2.c (revision 8bc7c5e525584903ea83332e18a2118ed3b1985e)
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  */
4 
5 #include <linux/export.h>
6 
7 #include <linux/libgcc.h>
8 
9 word_type notrace __cmpdi2(long long a, long long b)
10 {
11 	const DWunion au = {
12 		.ll = a
13 	};
14 	const DWunion bu = {
15 		.ll = b
16 	};
17 
18 	if (au.s.high < bu.s.high)
19 		return 0;
20 	else if (au.s.high > bu.s.high)
21 		return 2;
22 
23 	if ((unsigned int) au.s.low < (unsigned int) bu.s.low)
24 		return 0;
25 	else if ((unsigned int) au.s.low > (unsigned int) bu.s.low)
26 		return 2;
27 
28 	return 1;
29 }
30 EXPORT_SYMBOL(__cmpdi2);
31