convertFromInteger, as originally written, expected sign-extended

input.  APInt unfortunately zero-extends signed integers, so Dale
modified the function to expect zero-extended input.  Make this
assumption explicit in the function name.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42732 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Neil Booth
2007-10-07 11:45:55 +00:00
parent 33d4c92e78
commit ccf596a53e
6 changed files with 14 additions and 12 deletions

View File

@@ -1247,8 +1247,8 @@ APFloat::mod(const APFloat &rhs, roundingMode rounding_mode)
if (fs==opInvalidOp)
return fs;
fs = V.convertFromInteger(x, parts * integerPartWidth, true,
rmNearestTiesToEven);
fs = V.convertFromZeroExtendedInteger(x, parts * integerPartWidth, true,
rmNearestTiesToEven);
assert(fs==opOK); // should always work
fs = V.multiply(rhs, rounding_mode);
@@ -1576,9 +1576,11 @@ APFloat::convertFromUnsignedInteger(integerPart *parts,
return normalize(rounding_mode, lost_fraction);
}
/* FIXME: should this just take a const APInt reference? */
APFloat::opStatus
APFloat::convertFromInteger(const integerPart *parts, unsigned int width,
bool isSigned, roundingMode rounding_mode)
APFloat::convertFromZeroExtendedInteger(const integerPart *parts,
unsigned int width, bool isSigned,
roundingMode rounding_mode)
{
unsigned int partCount = partCountForBits(width);
opStatus status;