| Index: runtime/vm/assembler_x64.cc
|
| diff --git a/runtime/vm/assembler_x64.cc b/runtime/vm/assembler_x64.cc
|
| index b3a1d09638ab931f579d0e3dfe5dd4fab5d1d95a..85b83a9c9cc99b88b5f677545eaa9a82916a3e5f 100644
|
| --- a/runtime/vm/assembler_x64.cc
|
| +++ b/runtime/vm/assembler_x64.cc
|
| @@ -2737,6 +2737,7 @@ void Assembler::Drop(intptr_t stack_elements, Register tmp) {
|
|
|
|
|
| bool Assembler::CanLoadFromObjectPool(const Object& object) const {
|
| + ASSERT(!object.IsICData() || ICData::Cast(object).IsOriginal());
|
| ASSERT(!Thread::CanLoadFromThread(object));
|
| if (!constant_pool_allowed()) {
|
| return false;
|
| @@ -2772,6 +2773,7 @@ void Assembler::LoadIsolate(Register dst) {
|
| void Assembler::LoadObjectHelper(Register dst,
|
| const Object& object,
|
| bool is_unique) {
|
| + ASSERT(!object.IsICData() || ICData::Cast(object).IsOriginal());
|
| if (Thread::CanLoadFromThread(object)) {
|
| movq(dst, Address(THR, Thread::OffsetFromThread(object)));
|
| } else if (CanLoadFromObjectPool(object)) {
|
| @@ -2809,6 +2811,7 @@ void Assembler::LoadUniqueObject(Register dst, const Object& object) {
|
|
|
|
|
| void Assembler::StoreObject(const Address& dst, const Object& object) {
|
| + ASSERT(!object.IsICData() || ICData::Cast(object).IsOriginal());
|
| if (Thread::CanLoadFromThread(object)) {
|
| movq(TMP, Address(THR, Thread::OffsetFromThread(object)));
|
| movq(dst, TMP);
|
| @@ -2823,6 +2826,7 @@ void Assembler::StoreObject(const Address& dst, const Object& object) {
|
|
|
|
|
| void Assembler::PushObject(const Object& object) {
|
| + ASSERT(!object.IsICData() || ICData::Cast(object).IsOriginal());
|
| if (Thread::CanLoadFromThread(object)) {
|
| pushq(Address(THR, Thread::OffsetFromThread(object)));
|
| } else if (CanLoadFromObjectPool(object)) {
|
| @@ -2836,6 +2840,7 @@ void Assembler::PushObject(const Object& object) {
|
|
|
|
|
| void Assembler::CompareObject(Register reg, const Object& object) {
|
| + ASSERT(!object.IsICData() || ICData::Cast(object).IsOriginal());
|
| if (Thread::CanLoadFromThread(object)) {
|
| cmpq(reg, Address(THR, Thread::OffsetFromThread(object)));
|
| } else if (CanLoadFromObjectPool(object)) {
|
| @@ -3062,6 +3067,7 @@ void Assembler::StoreIntoObjectNoBarrier(Register object,
|
| const Address& dest,
|
| const Object& value,
|
| FieldContent old_content) {
|
| + ASSERT(!value.IsICData() || ICData::Cast(value).IsOriginal());
|
| VerifyHeapWord(dest, old_content);
|
| if (VerifiedMemory::enabled()) {
|
| const Register temp = RCX;
|
|
|