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

Unified Diff: runtime/vm/intrinsifier_x64.cc

Issue 842033005: Make Bigint instances immutable by removing all setters. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 years, 10 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
Index: runtime/vm/intrinsifier_x64.cc
===================================================================
--- runtime/vm/intrinsifier_x64.cc (revision 43482)
+++ runtime/vm/intrinsifier_x64.cc (working copy)
@@ -723,31 +723,6 @@
}
-void Intrinsifier::Bigint_setNeg(Assembler* assembler) {
- __ movq(RAX, Address(RSP, + 1 * kWordSize));
- __ movq(RCX, Address(RSP, + 2 * kWordSize));
- __ StoreIntoObject(RCX, FieldAddress(RCX, Bigint::neg_offset()), RAX, false);
- __ ret();
-}
-
-
-void Intrinsifier::Bigint_setUsed(Assembler* assembler) {
- __ movq(RAX, Address(RSP, + 1 * kWordSize));
- __ movq(RCX, Address(RSP, + 2 * kWordSize));
- __ StoreIntoObject(RCX, FieldAddress(RCX, Bigint::used_offset()), RAX);
- __ ret();
-}
-
-
-void Intrinsifier::Bigint_setDigits(Assembler* assembler) {
- __ movq(RAX, Address(RSP, + 1 * kWordSize));
- __ movq(RCX, Address(RSP, + 2 * kWordSize));
- __ StoreIntoObject(RCX,
- FieldAddress(RCX, Bigint::digits_offset()), RAX, false);
- __ ret();
-}
-
-
void Intrinsifier::Bigint_absAdd(Assembler* assembler) {
// static void _absAdd(Uint32List digits, int used,
// Uint32List a_digits, int a_used,
@@ -793,10 +768,12 @@
__ j(NOT_ZERO, &carry_loop, Assembler::kNearJump);
__ Bind(&last_carry);
- __ movq(RAX, Immediate(0));
- __ adcq(RAX, Immediate(0));
- __ movq(FieldAddress(RBX, RDX, TIMES_8, TypedData::data_offset()), RAX);
+ Label done;
+ __ j(NOT_CARRY, &done);
+ __ movq(FieldAddress(RBX, RDX, TIMES_8, TypedData::data_offset()),
+ Immediate(1));
+ __ Bind(&done);
// Returning Object::null() is not required, since this method is private.
__ ret();
}

Powered by Google App Engine
This is Rietveld 408576698