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