mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 21:32:10 +00:00
[APFloat] Added make{Zero,Inf} methods and implemented get{Zero,Inf} on top of them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184712 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fb25071a18
commit
fdec0c7a73
@ -211,14 +211,18 @@ public:
|
||||
///
|
||||
/// \param Negative True iff the number should be negative.
|
||||
static APFloat getZero(const fltSemantics &Sem, bool Negative = false) {
|
||||
return APFloat(Sem, fcZero, Negative);
|
||||
APFloat Val(Sem, uninitialized);
|
||||
Val.makeZero(Negative);
|
||||
return Val;
|
||||
}
|
||||
|
||||
/// Factory for Positive and Negative Infinity.
|
||||
///
|
||||
/// \param Negative True iff the number should be negative.
|
||||
static APFloat getInf(const fltSemantics &Sem, bool Negative = false) {
|
||||
return APFloat(Sem, fcInfinity, Negative);
|
||||
APFloat Val(Sem, uninitialized);
|
||||
Val.makeInf(Negative);
|
||||
return Val;
|
||||
}
|
||||
|
||||
/// Factory for QNaN values.
|
||||
@ -498,6 +502,8 @@ private:
|
||||
void makeNaN(bool SNaN = false, bool Neg = false, const APInt *fill = 0);
|
||||
static APFloat makeNaN(const fltSemantics &Sem, bool SNaN, bool Negative,
|
||||
const APInt *fill);
|
||||
void makeInf(bool Neg = false);
|
||||
void makeZero(bool Neg = false);
|
||||
|
||||
/// @}
|
||||
|
||||
|
@ -3827,3 +3827,19 @@ APFloat::opStatus APFloat::next(bool nextDown) {
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void
|
||||
APFloat::makeInf(bool Negative) {
|
||||
category = fcInfinity;
|
||||
sign = Negative;
|
||||
exponent = semantics->maxExponent + 1;
|
||||
APInt::tcSet(significandParts(), 0, partCount());
|
||||
}
|
||||
|
||||
void
|
||||
APFloat::makeZero(bool Negative) {
|
||||
category = fcZero;
|
||||
sign = Negative;
|
||||
exponent = semantics->minExponent-1;
|
||||
APInt::tcSet(significandParts(), 0, partCount());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user