| Index: runtime/vm/stub_code_arm.cc
|
| diff --git a/runtime/vm/stub_code_arm.cc b/runtime/vm/stub_code_arm.cc
|
| index d921151996ca5a384df6f6c71b5020d7df5134ce..ce584488c78df544d10b1c915bd20f1ffa943d5a 100644
|
| --- a/runtime/vm/stub_code_arm.cc
|
| +++ b/runtime/vm/stub_code_arm.cc
|
| @@ -610,10 +610,12 @@ void StubCode::GenerateAllocateArrayStub(Assembler* assembler) {
|
| // Successfully allocated the object(s), now update top to point to
|
| // next object start and initialize the object.
|
| // R0: potential new object start.
|
| + // R3: array size.
|
| // R7: potential next object start.
|
| // R8: Points to new space object.
|
| __ StoreToOffset(kWord, R7, R8, Scavenger::top_offset());
|
| __ add(R0, R0, ShifterOperand(kHeapObjectTag));
|
| + __ UpdateAllocationStatsWithSize(kArrayCid, R3, R8);
|
|
|
| // R0: new object start as a tagged pointer.
|
| // R1: array element type.
|
| @@ -946,6 +948,7 @@ void StubCode::GenerateAllocateContextStub(Assembler* assembler) {
|
| // R3: next object start.
|
| __ str(R3, Address(R5, 0));
|
| __ add(R0, R0, ShifterOperand(kHeapObjectTag));
|
| + __ UpdateAllocationStatsWithSize(context_class.id(), R2, R5);
|
|
|
| // Calculate the size tag.
|
| // R0: new object.
|
| @@ -1128,6 +1131,7 @@ void StubCode::GenerateAllocationStubForClass(Assembler* assembler,
|
| // Successfully allocated the object(s), now update top to point to
|
| // next object start and initialize the object.
|
| __ str(R3, Address(R5, 0));
|
| + __ UpdateAllocationStats(cls.id(), R5);
|
|
|
| if (is_cls_parameterized) {
|
| // Initialize the type arguments field in the object.
|
| @@ -1292,7 +1296,9 @@ void StubCode::GenerateAllocationStubForClosure(Assembler* assembler,
|
| // Successfully allocated the object, now update top to point to
|
| // next object start and initialize the object.
|
| __ str(R3, Address(R5, 0));
|
| -
|
| + // R3: Size of allocation in bytes.
|
| + __ sub(R3, R3, ShifterOperand(R2));
|
| + __ UpdateAllocationStatsWithSize(cls.id(), R3, R5);
|
| // R2: new closure object.
|
| // R4: new context object (only if is_implicit_closure).
|
| // Set the tags.
|
|
|