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

Unified Diff: runtime/vm/intrinsifier_ia32.cc

Issue 646493003: Implement bigint absAdd, bigint absSub, and Montgomery mulMod intrinsics on ARM. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 2 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 | « runtime/vm/intrinsifier_arm.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intrinsifier_ia32.cc
===================================================================
--- runtime/vm/intrinsifier_ia32.cc (revision 41035)
+++ runtime/vm/intrinsifier_ia32.cc (working copy)
@@ -929,24 +929,24 @@
__ SmiUntag(ECX); // a_used > 0.
__ movl(EBX, Address(ESP, 2 * kWordSize)); // r_digits
- // Precompute 'used - a_used' now so that CF is not lost later.
+ // Precompute 'used - a_used' now so that carry flag is not lost later.
__ subl(EAX, ECX);
__ incl(EAX); // To account for the extra test between loops.
__ pushl(EAX);
- __ xorl(EDX, EDX); // EDX = 0, CF = 0.
+ __ xorl(EDX, EDX); // EDX = 0, carry flag = 0.
Label add_loop;
__ Bind(&add_loop);
__ movl(EAX, FieldAddress(EDI, EDX, TIMES_4, TypedData::data_offset()));
__ adcl(EAX, FieldAddress(ESI, EDX, TIMES_4, TypedData::data_offset()));
__ movl(FieldAddress(EBX, EDX, TIMES_4, TypedData::data_offset()), EAX);
- __ incl(EDX); // Does not affect CF.
- __ decl(ECX); // Does not affect CF.
+ __ incl(EDX); // Does not affect carry flag.
+ __ decl(ECX); // Does not affect carry flag.
__ j(NOT_ZERO, &add_loop, Assembler::kNearJump);
Label last_carry;
__ popl(ECX);
- __ decl(ECX); // Does not affect CF.
+ __ decl(ECX); // Does not affect carry flag.
__ j(ZERO, &last_carry, Assembler::kNearJump);
Label carry_loop;
@@ -954,8 +954,8 @@
__ movl(EAX, FieldAddress(EDI, EDX, TIMES_4, TypedData::data_offset()));
__ adcl(EAX, Immediate(0));
__ movl(FieldAddress(EBX, EDX, TIMES_4, TypedData::data_offset()), EAX);
- __ incl(EDX); // Does not affect CF.
- __ decl(ECX); // Does not affect CF.
+ __ incl(EDX); // Does not affect carry flag.
+ __ decl(ECX); // Does not affect carry flag.
__ j(NOT_ZERO, &carry_loop, Assembler::kNearJump);
__ Bind(&last_carry);
@@ -987,24 +987,24 @@
__ SmiUntag(ECX); // a_used > 0.
__ movl(EBX, Address(ESP, 2 * kWordSize)); // r_digits
- // Precompute 'used - a_used' now so that CF is not lost later.
+ // Precompute 'used - a_used' now so that carry flag is not lost later.
__ subl(EAX, ECX);
__ incl(EAX); // To account for the extra test between loops.
__ pushl(EAX);
- __ xorl(EDX, EDX); // EDX = 0, CF = 0.
+ __ xorl(EDX, EDX); // EDX = 0, carry flag = 0.
Label sub_loop;
__ Bind(&sub_loop);
__ movl(EAX, FieldAddress(EDI, EDX, TIMES_4, TypedData::data_offset()));
__ sbbl(EAX, FieldAddress(ESI, EDX, TIMES_4, TypedData::data_offset()));
__ movl(FieldAddress(EBX, EDX, TIMES_4, TypedData::data_offset()), EAX);
- __ incl(EDX); // Does not affect CF.
- __ decl(ECX); // Does not affect CF.
+ __ incl(EDX); // Does not affect carry flag.
+ __ decl(ECX); // Does not affect carry flag.
__ j(NOT_ZERO, &sub_loop, Assembler::kNearJump);
Label done;
__ popl(ECX);
- __ decl(ECX); // Does not affect CF.
+ __ decl(ECX); // Does not affect carry flag.
__ j(ZERO, &done, Assembler::kNearJump);
Label carry_loop;
@@ -1012,8 +1012,8 @@
__ movl(EAX, FieldAddress(EDI, EDX, TIMES_4, TypedData::data_offset()));
__ sbbl(EAX, Immediate(0));
__ movl(FieldAddress(EBX, EDX, TIMES_4, TypedData::data_offset()), EAX);
- __ incl(EDX); // Does not affect CF.
- __ decl(ECX); // Does not affect CF.
+ __ incl(EDX); // Does not affect carry flag.
+ __ decl(ECX); // Does not affect carry flag.
__ j(NOT_ZERO, &carry_loop, Assembler::kNearJump);
__ Bind(&done);
« no previous file with comments | « runtime/vm/intrinsifier_arm.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698