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, |