Index: runtime/vm/intermediate_language_ia32.cc |
=================================================================== |
--- runtime/vm/intermediate_language_ia32.cc (revision 32709) |
+++ runtime/vm/intermediate_language_ia32.cc (working copy) |
@@ -2186,13 +2186,11 @@ |
// generated code size. |
__ LoadObject(EDI, type_arguments()); |
__ movl(EDI, FieldAddress(EDI, TypeArguments::instantiations_offset())); |
- __ movl(EBX, FieldAddress(EDI, Array::length_offset())); |
__ leal(EDI, FieldAddress(EDI, Array::data_offset())); |
- __ leal(EBX, Address(EDI, EBX, TIMES_2, 0)); // EBX is smi. |
+ // The instantiations cache is initialized with Object::zero_array() and is |
+ // therefore guaranteed to contain kNoInstantiator. No length check needed. |
Label loop, found, slow_case; |
__ Bind(&loop); |
- __ cmpl(EDI, EBX); |
- __ j(ABOVE_EQUAL, &slow_case); |
__ movl(EDX, Address(EDI, 0 * kWordSize)); // Cached instantiator. |
__ cmpl(EDX, EAX); |
__ j(EQUAL, &found, Assembler::kNearJump); |