1/* 2 * arch/score/lib/cmpdi2.c 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, see the file COPYING, or write 16 * to the Free Software Foundation, Inc., 17 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 */ 19 20#include <linux/module.h> 21#include "libgcc.h" 22 23word_type __cmpdi2(long long a, long long b) 24{ 25 const DWunion au = { 26 .ll = a 27 }; 28 const DWunion bu = { 29 .ll = b 30 }; 31 32 if (au.s.high < bu.s.high) 33 return 0; 34 else if (au.s.high > bu.s.high) 35 return 2; 36 37 if ((unsigned int) au.s.low < (unsigned int) bu.s.low) 38 return 0; 39 else if ((unsigned int) au.s.low > (unsigned int) bu.s.low) 40 return 2; 41 42 return 1; 43} 44EXPORT_SYMBOL(__cmpdi2); 45