| Index: runtime/vm/assembler_arm.cc
|
| diff --git a/runtime/vm/assembler_arm.cc b/runtime/vm/assembler_arm.cc
|
| index 16f266215e24208ccf50bcb69f61f3437608c175..4043fc1ebb84501e089c6ff1e15090ff4ea1731f 100644
|
| --- a/runtime/vm/assembler_arm.cc
|
| +++ b/runtime/vm/assembler_arm.cc
|
| @@ -1565,6 +1565,7 @@ void Assembler::LoadIsolate(Register rd) {
|
|
|
| bool Assembler::CanLoadFromObjectPool(const Object& object) const {
|
| ASSERT(!object.IsICData() || ICData::Cast(object).IsOriginal());
|
| + ASSERT(!object.IsField() || Field::Cast(object).IsOriginal());
|
| ASSERT(!Thread::CanLoadFromThread(object));
|
| if (!constant_pool_allowed()) {
|
| return false;
|
| @@ -1582,6 +1583,7 @@ void Assembler::LoadObjectHelper(Register rd,
|
| bool is_unique,
|
| Register pp) {
|
| ASSERT(!object.IsICData() || ICData::Cast(object).IsOriginal());
|
| + ASSERT(!object.IsField() || Field::Cast(object).IsOriginal());
|
| // Load common VM constants from the thread. This works also in places where
|
| // no constant pool is set up (e.g. intrinsic code).
|
| if (Thread::CanLoadFromThread(object)) {
|
| @@ -1641,6 +1643,7 @@ void Assembler::LoadNativeEntry(Register rd,
|
|
|
| void Assembler::PushObject(const Object& object) {
|
| ASSERT(!object.IsICData() || ICData::Cast(object).IsOriginal());
|
| + ASSERT(!object.IsField() || Field::Cast(object).IsOriginal());
|
| LoadObject(IP, object);
|
| Push(IP);
|
| }
|
| @@ -1648,6 +1651,7 @@ void Assembler::PushObject(const Object& object) {
|
|
|
| void Assembler::CompareObject(Register rn, const Object& object) {
|
| ASSERT(!object.IsICData() || ICData::Cast(object).IsOriginal());
|
| + ASSERT(!object.IsField() || Field::Cast(object).IsOriginal());
|
| ASSERT(rn != IP);
|
| if (object.IsSmi()) {
|
| CompareImmediate(rn, reinterpret_cast<int32_t>(object.raw()));
|
| @@ -1907,6 +1911,7 @@ void Assembler::StoreIntoObjectNoBarrier(Register object,
|
| const Object& value,
|
| FieldContent old_content) {
|
| ASSERT(!value.IsICData() || ICData::Cast(value).IsOriginal());
|
| + ASSERT(!value.IsField() || Field::Cast(value).IsOriginal());
|
| ASSERT(value.IsSmi() || value.InVMHeap() ||
|
| (value.IsOld() && value.IsNotTemporaryScopedHandle()));
|
| // No store buffer update.
|
| @@ -1920,6 +1925,7 @@ void Assembler::StoreIntoObjectNoBarrierOffset(Register object,
|
| const Object& value,
|
| FieldContent old_content) {
|
| ASSERT(!value.IsICData() || ICData::Cast(value).IsOriginal());
|
| + ASSERT(!value.IsField() || Field::Cast(value).IsOriginal());
|
| int32_t ignored = 0;
|
| if (Address::CanHoldStoreOffset(kWord, offset - kHeapObjectTag, &ignored)) {
|
| StoreIntoObjectNoBarrier(object, FieldAddress(object, offset), value,
|
|
|