blob: 597998169a96fc11a0270697b417240b977b0f2a [file] [log] [blame]
Palmer Dabbeltb35cd982017-05-23 10:28:26 -07001/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License as published by
4 * the Free Software Foundation; either version 2 of the License, or
5 * (at your option) any later version.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 * You should have received a copy of the GNU General Public License
13 * along with this program; if not, see the file COPYING, or write
14 * to the Free Software Foundation, Inc.
15 */
16
17#include <linux/module.h>
Christoph Hellwig4db2b602017-11-22 11:47:28 +010018#include <linux/libgcc.h>
Palmer Dabbeltb35cd982017-05-23 10:28:26 -070019
Palmer Dabbeltaad5a532018-04-11 08:50:16 +010020word_type notrace __ucmpdi2(unsigned long long a, unsigned long long b)
Palmer Dabbeltb35cd982017-05-23 10:28:26 -070021{
22 const DWunion au = {.ll = a};
23 const DWunion bu = {.ll = b};
24
25 if ((unsigned int) au.s.high < (unsigned int) bu.s.high)
26 return 0;
27 else if ((unsigned int) au.s.high > (unsigned int) bu.s.high)
28 return 2;
29 if ((unsigned int) au.s.low < (unsigned int) bu.s.low)
30 return 0;
31 else if ((unsigned int) au.s.low > (unsigned int) bu.s.low)
32 return 2;
33 return 1;
34}
35EXPORT_SYMBOL(__ucmpdi2);