Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(179)

Unified Diff: vm/bigint_operations.cc

Issue 12052033: Added macros OBJECT_IMPLEMENTATION and FINAL_OBJECT_IMPLEMENTATION (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « vm/ast.cc ('k') | vm/cha.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: vm/bigint_operations.cc
===================================================================
--- vm/bigint_operations.cc (revision 17436)
+++ vm/bigint_operations.cc (working copy)
@@ -184,15 +184,15 @@
ASSERT(('0' <= c) && (c <= '9'));
digit = digit * 10 + c - '0';
}
- result |= MultiplyWithDigit(result, kTenMultiplier);
+ result = MultiplyWithDigit(result, kTenMultiplier);
if (digit != 0) {
increment.SetChunkAt(0, digit);
- result |= Add(result, increment);
+ result = Add(result, increment);
}
}
Clamp(result);
if ((space == Heap::kOld) && !result.IsOld()) {
- result |= Object::Clone(result, Heap::kOld);
+ result ^= Object::Clone(result, Heap::kOld);
}
return result.raw();
}
@@ -1480,13 +1480,13 @@
int comp = UnsignedCompare(a, b);
if (comp < 0) {
- (*quotient) |= Zero();
- (*remainder) |= Copy(a); // TODO(floitsch): can we reuse the input?
+ (*quotient) = Zero();
+ (*remainder) = Copy(a); // TODO(floitsch): can we reuse the input?
return;
} else if (comp == 0) {
- (*quotient) |= One();
+ (*quotient) = One();
quotient->SetSign(a.IsNegative() != b.IsNegative());
- (*remainder) |= Zero();
+ (*remainder) = Zero();
return;
}
@@ -1521,7 +1521,7 @@
ASSERT(divisor_length == divisor.Length());
intptr_t quotient_length = dividend_length - divisor_length + 1;
- *quotient |= Bigint::Allocate(quotient_length);
+ *quotient = Bigint::Allocate(quotient_length);
quotient->SetSign(a.IsNegative() != b.IsNegative());
intptr_t quotient_pos = dividend_length - divisor_length;
@@ -1536,7 +1536,7 @@
Chunk first_quotient_digit = 0;
while (UnsignedCompare(dividend, shifted_divisor) >= 0) {
first_quotient_digit++;
- dividend |= Subtract(dividend, shifted_divisor);
+ dividend = Subtract(dividend, shifted_divisor);
}
quotient->SetChunkAt(quotient_pos--, first_quotient_digit);
@@ -1609,7 +1609,7 @@
target.SetChunkAt(2, dividend_digit);
do {
quotient_digit = (quotient_digit - 1) & kDigitMask;
- estimation_product |= MultiplyWithDigit(short_divisor, quotient_digit);
+ estimation_product = MultiplyWithDigit(short_divisor, quotient_digit);
} while (UnsignedCompareNonClamped(estimation_product, target) > 0);
// At this point the quotient_digit is fairly accurate.
// At the worst it is off by one.
@@ -1617,15 +1617,15 @@
// subtract the divisor another time.
// Let t = i - divisor_length.
// dividend -= (quotient_digit * divisor) << (t * kDigitBitSize);
- shifted_divisor |= MultiplyWithDigit(divisor, quotient_digit);
- shifted_divisor |= DigitsShiftLeft(shifted_divisor, i - divisor_length);
+ shifted_divisor = MultiplyWithDigit(divisor, quotient_digit);
+ shifted_divisor = DigitsShiftLeft(shifted_divisor, i - divisor_length);
dividend = Subtract(dividend, shifted_divisor);
if (dividend.IsNegative()) {
// The estimation was still too big.
quotient_digit--;
// TODO(floitsch): allocate space for the shifted_divisor once and reuse
// it at every iteration.
- shifted_divisor |= DigitsShiftLeft(divisor, i - divisor_length);
+ shifted_divisor = DigitsShiftLeft(divisor, i - divisor_length);
// TODO(floitsch): reuse the space of the previous dividend.
dividend = Add(dividend, shifted_divisor);
}
@@ -1633,7 +1633,7 @@
}
ASSERT(quotient_pos == -1);
Clamp(*quotient);
- *remainder |= ShiftRight(dividend, normalization_shift);
+ *remainder = ShiftRight(dividend, normalization_shift);
remainder->SetSign(a.IsNegative());
}
« no previous file with comments | « vm/ast.cc ('k') | vm/cha.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698