Clean up variable names in operator*.

Attempt #3 for getting a portable INFINITY value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34454 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2007-02-20 20:42:10 +00:00
parent 580546a82b
commit 61eb180a53

View File

@ -17,7 +17,6 @@
#include "llvm/Support/MathExtras.h" #include "llvm/Support/MathExtras.h"
#include <cstring> #include <cstring>
#include <cstdlib> #include <cstdlib>
#include <cmath>
using namespace llvm; using namespace llvm;
// A utility function for allocating memory, checking for allocation failures, // A utility function for allocating memory, checking for allocation failures,
@ -331,7 +330,8 @@ static void mul(uint64_t dest[], uint64_t x[], uint32_t xlen,
/// given APInt& RHS and assigns the result to this APInt. /// given APInt& RHS and assigns the result to this APInt.
APInt& APInt::operator*=(const APInt& RHS) { APInt& APInt::operator*=(const APInt& RHS) {
assert(BitWidth == RHS.BitWidth && "Bit widths must be the same"); assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
if (isSingleWord()) VAL *= RHS.isSingleWord() ? RHS.VAL : RHS.pVal[0]; if (isSingleWord())
VAL *= RHS.VAL;
else { else {
// one-based first non-zero bit position. // one-based first non-zero bit position.
uint32_t first = getActiveBits(); uint32_t first = getActiveBits();
@ -456,10 +456,10 @@ bool APInt::operator !() const {
/// RHS. /// RHS.
APInt APInt::operator*(const APInt& RHS) const { APInt APInt::operator*(const APInt& RHS) const {
assert(BitWidth == RHS.BitWidth && "Bit widths must be the same"); assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
APInt API(RHS); APInt Result(*this);
API *= *this; Result *= RHS;
API.clearUnusedBits(); Result.clearUnusedBits();
return API; return Result;
} }
/// @brief Addition operator. Adds this APInt by the given APInt& RHS. /// @brief Addition operator. Adds this APInt by the given APInt& RHS.
@ -838,9 +838,9 @@ double APInt::roundToDouble(bool isSigned) const {
// Return infinity for exponent overflow // Return infinity for exponent overflow
if (exp > 1023) { if (exp > 1023) {
if (!isSigned || !isNeg) if (!isSigned || !isNeg)
return double(INFINITY); // positive infinity return double(1.0E300 * 1.0E300); // positive infinity
else else
return double(-INFINITY); // negative infinity return double(-1.0E300 * 1.0E300); // negative infinity
} }
exp += 1023; // Increment for 1023 bias exp += 1023; // Increment for 1023 bias