Index: runtime/vm/stub_code_arm.cc |
diff --git a/runtime/vm/stub_code_arm.cc b/runtime/vm/stub_code_arm.cc |
index 0fc07ac0229843deb28885b8d101a393e7abd150..9f71894e5774254c62622e605d960cbc83965681 100644 |
--- a/runtime/vm/stub_code_arm.cc |
+++ b/runtime/vm/stub_code_arm.cc |
@@ -371,7 +371,8 @@ static void PushArgumentsArray(Assembler* assembler) { |
Label loop; |
__ Bind(&loop); |
__ ldr(IP, Address(R1, kWordSize, Address::PreIndex)); |
- __ InitializeFieldNoBarrier(R0, Address(R3, R2, LSL, 1), IP); |
+ // Generational barrier is needed, array is not necessarily in new space. |
+ __ StoreIntoObject(R0, Address(R3, R2, LSL, 1), IP); |
__ Bind(&enter); |
__ subs(R2, R2, Operand(Smi::RawValue(1))); // R2 is Smi. |
__ b(&loop, PL); |
@@ -678,12 +679,12 @@ void StubCode::GenerateAllocateArrayStub(Assembler* assembler) { |
// R0: new object start as a tagged pointer. |
// NOTFP: new object end address. |
// Store the type argument field. |
- __ InitializeFieldNoBarrier(R0, |
+ __ StoreIntoObjectNoBarrier(R0, |
FieldAddress(R0, Array::type_arguments_offset()), |
R1); |
// Set the length field. |
- __ InitializeFieldNoBarrier(R0, |
+ __ StoreIntoObjectNoBarrier(R0, |
FieldAddress(R0, Array::length_offset()), |
R2); |
@@ -926,7 +927,7 @@ void StubCode::GenerateAllocateContextStub(Assembler* assembler) { |
// R3: next object start. |
// R4: allocation stats address. |
__ LoadObject(R8, Object::null_object()); |
- __ InitializeFieldNoBarrier(R0, FieldAddress(R0, Context::parent_offset()), |
+ __ StoreIntoObjectNoBarrier(R0, FieldAddress(R0, Context::parent_offset()), |
R8); |
// Initialize the context variables. |
@@ -1130,7 +1131,7 @@ void StubCode::GenerateAllocationStubForClass(Assembler* assembler, |
// Set the type arguments in the new object. |
__ ldr(R4, Address(SP, 0)); |
FieldAddress type_args(R0, cls.type_arguments_field_offset()); |
- __ InitializeFieldNoBarrier(R0, type_args, R4); |
+ __ StoreIntoObjectNoBarrier(R0, type_args, R4); |
} |
// Done allocating and initializing the instance. |