| Index: runtime/vm/stub_code_ia32.cc
|
| diff --git a/runtime/vm/stub_code_ia32.cc b/runtime/vm/stub_code_ia32.cc
|
| index deeeee8f2a79cfdb956e99af6d70fd510cdcb01a..963718b16d8718bdfb53734ab98571c6d4e53a1e 100644
|
| --- a/runtime/vm/stub_code_ia32.cc
|
| +++ b/runtime/vm/stub_code_ia32.cc
|
| @@ -622,7 +622,7 @@ void StubCode::GenerateAllocateArrayStub(Assembler* assembler) {
|
| if (FLAG_use_slow_path) {
|
| __ jmp(&slow_case);
|
| } else {
|
| - __ j(NOT_ZERO, &slow_case, Assembler::kNearJump);
|
| + __ j(NOT_ZERO, &slow_case);
|
| }
|
| __ movl(EDI, FieldAddress(CTX, Context::isolate_offset()));
|
| __ movl(EDI, Address(EDI, Isolate::heap_offset()));
|
| @@ -647,7 +647,7 @@ void StubCode::GenerateAllocateArrayStub(Assembler* assembler) {
|
| // EDX: Array length as Smi.
|
| // EDI: Points to new space object.
|
| __ cmpl(EBX, Address(EDI, Scavenger::end_offset()));
|
| - __ j(ABOVE_EQUAL, &slow_case, Assembler::kNearJump);
|
| + __ j(ABOVE_EQUAL, &slow_case);
|
|
|
| // Successfully allocated the object(s), now update top to point to
|
| // next object start and initialize the object.
|
| @@ -664,14 +664,16 @@ void StubCode::GenerateAllocateArrayStub(Assembler* assembler) {
|
| // EDX: Array length as Smi.
|
|
|
| // Store the type argument field.
|
| - __ StoreIntoObject(EAX,
|
| - FieldAddress(EAX, Array::type_arguments_offset()),
|
| - ECX);
|
| + __ StoreIntoObjectNoBarrier(
|
| + EAX,
|
| + FieldAddress(EAX, Array::type_arguments_offset()),
|
| + ECX);
|
|
|
| // Set the length field.
|
| - __ StoreIntoObject(EAX,
|
| - FieldAddress(EAX, Array::length_offset()),
|
| - EDX);
|
| + __ StoreIntoObjectNoBarrier(
|
| + EAX,
|
| + FieldAddress(EAX, Array::length_offset()),
|
| + EDX);
|
|
|
| // Calculate the size tag.
|
| // EAX: new object start as a tagged pointer.
|
| @@ -708,6 +710,7 @@ void StubCode::GenerateAllocateArrayStub(Assembler* assembler) {
|
| __ Bind(&init_loop);
|
| __ cmpl(ECX, EBX);
|
| __ j(ABOVE_EQUAL, &done, Assembler::kNearJump);
|
| + // TODO(cshapiro): StoreIntoObjectNoBarrier
|
| __ movl(Address(ECX, 0), raw_null);
|
| __ addl(ECX, Immediate(kWordSize));
|
| __ jmp(&init_loop, Assembler::kNearJump);
|
|
|