mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
Revert "[APFloat] Removed APFloat constructor which initialized to either zero/NaN but allowed you to arbitrarily set the category of the float."
This reverts commit r185095. This is causing a FileCheck failure on the 3dnow intrinsics on at least the mips/ppc bots but not on the x86 bots. Reverting while I figure out what is going on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185099 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -795,6 +795,17 @@ APFloat::APFloat(const fltSemantics &ourSemantics, uninitializedTag tag) {
|
||||
initialize(&ourSemantics);
|
||||
}
|
||||
|
||||
APFloat::APFloat(const fltSemantics &ourSemantics,
|
||||
fltCategory ourCategory, bool negative) {
|
||||
initialize(&ourSemantics);
|
||||
category = ourCategory;
|
||||
sign = negative;
|
||||
if (isFiniteNonZero())
|
||||
category = fcZero;
|
||||
else if (ourCategory == fcNaN)
|
||||
makeNaN();
|
||||
}
|
||||
|
||||
APFloat::APFloat(const fltSemantics &ourSemantics, StringRef text) {
|
||||
initialize(&ourSemantics);
|
||||
convertFromString(text, rmNearestTiesToEven);
|
||||
@ -2395,8 +2406,8 @@ APFloat::roundSignificandWithExponent(const integerPart *decSigParts,
|
||||
excessPrecision = calcSemantics.precision - semantics->precision;
|
||||
truncatedBits = excessPrecision;
|
||||
|
||||
APFloat decSig = APFloat::getZero(calcSemantics, sign);
|
||||
APFloat pow5(calcSemantics);
|
||||
APFloat decSig(calcSemantics, fcZero, sign);
|
||||
APFloat pow5(calcSemantics, fcZero, false);
|
||||
|
||||
sigStatus = decSig.convertFromUnsignedParts(decSigParts, sigPartCount,
|
||||
rmNearestTiesToEven);
|
||||
@ -3377,16 +3388,15 @@ APFloat APFloat::getSmallest(const fltSemantics &Sem, bool Negative) {
|
||||
}
|
||||
|
||||
APFloat APFloat::getSmallestNormalized(const fltSemantics &Sem, bool Negative) {
|
||||
APFloat Val(Sem, uninitialized);
|
||||
APFloat Val(Sem, fcNormal, Negative);
|
||||
|
||||
// We want (in interchange format):
|
||||
// sign = {Negative}
|
||||
// exponent = 0..0
|
||||
// significand = 10..0
|
||||
|
||||
Val.zeroSignificand();
|
||||
Val.sign = Negative;
|
||||
Val.exponent = Sem.minExponent;
|
||||
Val.zeroSignificand();
|
||||
Val.significandParts()[partCountForBits(Sem.precision)-1] |=
|
||||
(((integerPart) 1) << ((Sem.precision - 1) % integerPartWidth));
|
||||
|
||||
|
Reference in New Issue
Block a user