Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1266)

Unified Diff: runtime/vm/assembler_arm.cc

Issue 1722733002: In background compilation make a copy of Field in order to freeze its state (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: s Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/lib/mirrors.cc ('k') | runtime/vm/assembler_arm64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « runtime/lib/mirrors.cc ('k') | runtime/vm/assembler_arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698