linux/lib/ucmpdi2.c
<<
>>
Prefs
   1/*
   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>
  18#include <linux/libgcc.h>
  19
  20word_type notrace __ucmpdi2(unsigned long long a, unsigned long long b)
  21{
  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);
  36