1*588cb88cSThomas Gleixner // SPDX-License-Identifier: GPL-2.0-or-later 2b35cd988SPalmer Dabbelt /* 3b35cd988SPalmer Dabbelt */ 4b35cd988SPalmer Dabbelt 5b35cd988SPalmer Dabbelt #include <linux/module.h> 64db2b604SChristoph Hellwig #include <linux/libgcc.h> 7b35cd988SPalmer Dabbelt __ucmpdi2(unsigned long long a,unsigned long long b)8aad5a537SPalmer Dabbeltword_type notrace __ucmpdi2(unsigned long long a, unsigned long long b) 9b35cd988SPalmer Dabbelt { 10b35cd988SPalmer Dabbelt const DWunion au = {.ll = a}; 11b35cd988SPalmer Dabbelt const DWunion bu = {.ll = b}; 12b35cd988SPalmer Dabbelt 13b35cd988SPalmer Dabbelt if ((unsigned int) au.s.high < (unsigned int) bu.s.high) 14b35cd988SPalmer Dabbelt return 0; 15b35cd988SPalmer Dabbelt else if ((unsigned int) au.s.high > (unsigned int) bu.s.high) 16b35cd988SPalmer Dabbelt return 2; 17b35cd988SPalmer Dabbelt if ((unsigned int) au.s.low < (unsigned int) bu.s.low) 18b35cd988SPalmer Dabbelt return 0; 19b35cd988SPalmer Dabbelt else if ((unsigned int) au.s.low > (unsigned int) bu.s.low) 20b35cd988SPalmer Dabbelt return 2; 21b35cd988SPalmer Dabbelt return 1; 22b35cd988SPalmer Dabbelt } 23b35cd988SPalmer Dabbelt EXPORT_SYMBOL(__ucmpdi2); 24