mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Drop the hacks used for partial C99 math libraries.
All supported platforms have half-way decent C99 support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231679 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1310,13 +1310,8 @@ APInt APInt::sqrt() const {
|
||||
// libc sqrt function which will probably use a hardware sqrt computation.
|
||||
// This should be faster than the algorithm below.
|
||||
if (magnitude < 52) {
|
||||
#if HAVE_ROUND
|
||||
return APInt(BitWidth,
|
||||
uint64_t(::round(::sqrt(double(isSingleWord()?VAL:pVal[0])))));
|
||||
#else
|
||||
return APInt(BitWidth,
|
||||
uint64_t(::sqrt(double(isSingleWord()?VAL:pVal[0])) + 0.5));
|
||||
#endif
|
||||
}
|
||||
|
||||
// Okay, all the short cuts are exhausted. We must compute it. The following
|
||||
|
@@ -58,8 +58,6 @@ add_llvm_library(LLVMSupport
|
||||
IntEqClasses.cpp
|
||||
IntervalMap.cpp
|
||||
IntrusiveRefCntPtr.cpp
|
||||
IsInf.cpp
|
||||
IsNAN.cpp
|
||||
LEB128.cpp
|
||||
LineIterator.cpp
|
||||
Locale.cpp
|
||||
|
@@ -1,49 +0,0 @@
|
||||
//===-- IsInf.cpp - Platform-independent wrapper around C99 isinf() -------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Platform-independent wrapper around C99 isinf()
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/Config/config.h"
|
||||
|
||||
#if HAVE_ISINF_IN_MATH_H
|
||||
# include <math.h>
|
||||
#elif HAVE_ISINF_IN_CMATH
|
||||
# include <cmath>
|
||||
#elif HAVE_STD_ISINF_IN_CMATH
|
||||
# include <cmath>
|
||||
using std::isinf;
|
||||
#elif HAVE_FINITE_IN_IEEEFP_H
|
||||
// A handy workaround I found at http://www.unixguide.net/sun/faq ...
|
||||
// apparently this has been a problem with Solaris for years.
|
||||
# include <ieeefp.h>
|
||||
static int isinf(double x) { return !finite(x) && x==x; }
|
||||
#elif defined(_MSC_VER)
|
||||
#include <float.h>
|
||||
#define isinf(X) (!_finite(X))
|
||||
#elif defined(_AIX) && defined(__GNUC__)
|
||||
// GCC's fixincludes seems to be removing the isinf() declaration from the
|
||||
// system header /usr/include/math.h
|
||||
# include <math.h>
|
||||
static int isinf(double x) { return !finite(x) && x==x; }
|
||||
#elif defined(__hpux)
|
||||
// HP-UX is "special"
|
||||
#include <math.h>
|
||||
static int isinf(double x) { return ((x) == INFINITY) || ((x) == -INFINITY); }
|
||||
#else
|
||||
# error "Don't know how to get isinf()"
|
||||
#endif
|
||||
|
||||
namespace llvm {
|
||||
|
||||
int IsInf(float f) { return isinf(f); }
|
||||
int IsInf(double d) { return isinf(d); }
|
||||
|
||||
} // end namespace llvm;
|
@@ -1,33 +0,0 @@
|
||||
//===-- IsNAN.cpp ---------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Platform-independent wrapper around C99 isnan().
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/Config/config.h"
|
||||
|
||||
#if HAVE_ISNAN_IN_MATH_H
|
||||
# include <math.h>
|
||||
#elif HAVE_ISNAN_IN_CMATH
|
||||
# include <cmath>
|
||||
#elif HAVE_STD_ISNAN_IN_CMATH
|
||||
# include <cmath>
|
||||
using std::isnan;
|
||||
#elif defined(_MSC_VER)
|
||||
#include <float.h>
|
||||
#define isnan _isnan
|
||||
#else
|
||||
# error "Don't know how to get isnan()"
|
||||
#endif
|
||||
|
||||
namespace llvm {
|
||||
int IsNAN(float f) { return isnan(f); }
|
||||
int IsNAN(double d) { return isnan(d); }
|
||||
} // end namespace llvm;
|
Reference in New Issue
Block a user