cmpti2.c revision 239138
1202878Srdivacky/* ===-- cmpti2.c - Implement __cmpti2 -------------------------------------=== 2202878Srdivacky * 3202878Srdivacky * The LLVM Compiler Infrastructure 4202878Srdivacky * 5202878Srdivacky * This file is dual licensed under the MIT and the University of Illinois Open 6202878Srdivacky * Source Licenses. See LICENSE.TXT for details. 7202878Srdivacky * 8202878Srdivacky * ===----------------------------------------------------------------------=== 9202878Srdivacky * 10202878Srdivacky * This file implements __cmpti2 for the compiler_rt library. 11249423Sdim * 12202878Srdivacky * ===----------------------------------------------------------------------=== 13202878Srdivacky */ 14226633Sdim 15249423Sdim#include "int_lib.h" 16202878Srdivacky 17224145Sdim#if __x86_64 18202878Srdivacky 19202878Srdivacky/* Returns: if (a < b) returns 0 20212904Sdim * if (a == b) returns 1 21202878Srdivacky * if (a > b) returns 2 22202878Srdivacky */ 23202878Srdivacky 24202878Srdivackysi_int 25202878Srdivacky__cmpti2(ti_int a, ti_int b) 26226633Sdim{ 27212904Sdim twords x; 28212904Sdim x.all = a; 29212904Sdim twords y; 30212904Sdim y.all = b; 31212904Sdim if (x.s.high < y.s.high) 32202878Srdivacky return 0; 33202878Srdivacky if (x.s.high > y.s.high) 34202878Srdivacky return 2; 35202878Srdivacky if (x.s.low < y.s.low) 36234353Sdim return 0; 37234353Sdim if (x.s.low > y.s.low) 38210299Sed return 2; 39210299Sed return 1; 40210299Sed} 41249423Sdim 42202878Srdivacky#endif 43249423Sdim