BFI: Change language from "exponent" to "scale"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211557 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan P. N. Exon Smith
2014-06-23 23:57:12 +00:00
parent 1c4709c618
commit 747b62f119
2 changed files with 59 additions and 61 deletions

View File

@@ -28,8 +28,8 @@ using namespace llvm::bfi_detail;
//
//===----------------------------------------------------------------------===//
#ifndef _MSC_VER
const int32_t ScaledNumberBase::MaxExponent;
const int32_t ScaledNumberBase::MinExponent;
const int32_t ScaledNumberBase::MaxScale;
const int32_t ScaledNumberBase::MinScale;
#endif
static void appendDigit(std::string &Str, unsigned D) {
@@ -58,22 +58,22 @@ static bool doesRoundUp(char Digit) {
}
static std::string toStringAPFloat(uint64_t D, int E, unsigned Precision) {
assert(E >= ScaledNumberBase::MinExponent);
assert(E <= ScaledNumberBase::MaxExponent);
assert(E >= ScaledNumberBase::MinScale);
assert(E <= ScaledNumberBase::MaxScale);
// Find a new E, but don't let it increase past MaxExponent.
// Find a new E, but don't let it increase past MaxScale.
int LeadingZeros = ScaledNumberBase::countLeadingZeros64(D);
int NewE = std::min(ScaledNumberBase::MaxExponent, E + 63 - LeadingZeros);
int NewE = std::min(ScaledNumberBase::MaxScale, E + 63 - LeadingZeros);
int Shift = 63 - (NewE - E);
assert(Shift <= LeadingZeros);
assert(Shift == LeadingZeros || NewE == ScaledNumberBase::MaxExponent);
assert(Shift == LeadingZeros || NewE == ScaledNumberBase::MaxScale);
D <<= Shift;
E = NewE;
// Check for a denormal.
unsigned AdjustedE = E + 16383;
if (!(D >> 63)) {
assert(E == ScaledNumberBase::MaxExponent);
assert(E == ScaledNumberBase::MaxScale);
AdjustedE = 0;
}