| Index: runtime/vm/assembler_arm.cc
|
| ===================================================================
|
| --- runtime/vm/assembler_arm.cc (revision 41855)
|
| +++ runtime/vm/assembler_arm.cc (working copy)
|
| @@ -1735,6 +1735,30 @@
|
| }
|
|
|
|
|
| +void Assembler::InitializeFieldsNoBarrier(Register object,
|
| + Register begin,
|
| + Register end,
|
| + Register value_even,
|
| + Register value_odd) {
|
| + ASSERT(value_odd == value_even + 1);
|
| + Label init_loop;
|
| + Bind(&init_loop);
|
| + AddImmediate(begin, 2 * kWordSize);
|
| + cmp(begin, Operand(end));
|
| + strd(value_even, Address(begin, -2 * kWordSize), LS);
|
| + b(&init_loop, CC);
|
| + str(value_even, Address(begin, -2 * kWordSize), HI);
|
| +#if defined(DEBUG)
|
| + Label done;
|
| + StoreIntoObjectFilter(object, value_even, &done);
|
| + StoreIntoObjectFilter(object, value_odd, &done);
|
| + Stop("Store buffer update is required");
|
| + Bind(&done);
|
| +#endif // defined(DEBUG)
|
| + // No store buffer update.
|
| +}
|
| +
|
| +
|
| void Assembler::LoadClassId(Register result, Register object, Condition cond) {
|
| ASSERT(RawObject::kClassIdTagPos == 16);
|
| ASSERT(RawObject::kClassIdTagSize == 16);
|
|
|