mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 23:17:16 +00:00
APFloat: Add a move ctor and operator=
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202883 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -683,6 +683,20 @@ APFloat::operator=(const APFloat &rhs)
|
||||
return *this;
|
||||
}
|
||||
|
||||
APFloat &
|
||||
APFloat::operator=(APFloat &&rhs) {
|
||||
freeSignificand();
|
||||
|
||||
semantics = rhs.semantics;
|
||||
significand = rhs.significand;
|
||||
exponent = rhs.exponent;
|
||||
category = rhs.category;
|
||||
sign = rhs.sign;
|
||||
|
||||
rhs.semantics = &Bogus;
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool
|
||||
APFloat::isDenormal() const {
|
||||
return isFiniteNonZero() && (exponent == semantics->minExponent) &&
|
||||
@@ -806,6 +820,10 @@ APFloat::APFloat(const APFloat &rhs) {
|
||||
assign(rhs);
|
||||
}
|
||||
|
||||
APFloat::APFloat(APFloat &&rhs) : semantics(&Bogus) {
|
||||
*this = std::move(rhs);
|
||||
}
|
||||
|
||||
APFloat::~APFloat()
|
||||
{
|
||||
freeSignificand();
|
||||
|
||||
Reference in New Issue
Block a user