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

Unified Diff: runtime/vm/assembler_arm64.cc

Issue 1229283002: VM: Share some stub code between isolates. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: addressed comments Created 5 years, 5 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/vm/assembler.cc ('k') | runtime/vm/assembler_x64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/assembler_arm64.cc
diff --git a/runtime/vm/assembler_arm64.cc b/runtime/vm/assembler_arm64.cc
index 7b002148648b4e3e22396b13030158e6d7ced3c7..ff5093eedadca38b9dba1fafa8ecedab9b212035 100644
--- a/runtime/vm/assembler_arm64.cc
+++ b/runtime/vm/assembler_arm64.cc
@@ -360,7 +360,6 @@ void Assembler::LoadWordFromPoolOffsetFixed(Register dst, Register pp,
intptr_t Assembler::FindImmediate(int64_t imm) {
- ASSERT(Isolate::Current() != Dart::vm_isolate());
return object_pool_wrapper_.FindImmediate(imm);
}
@@ -380,7 +379,7 @@ bool Assembler::CanLoadFromObjectPool(const Object& object) const {
}
ASSERT(object.IsNotTemporaryScopedHandle());
ASSERT(object.IsOld());
- return (Isolate::Current() != Dart::vm_isolate());
+ return true;
}
@@ -388,12 +387,7 @@ bool Assembler::CanLoadImmediateFromPool(int64_t imm, Register pp) {
if (!allow_constant_pool()) {
return false;
}
- return !Utils::IsInt(32, imm) &&
- (pp != kNoPP) &&
- // We *could* put constants in the pool in a VM isolate, but it is
- // simpler to maintain the invariant that the object pool is not used
- // in the VM isolate.
- (Isolate::Current() != Dart::vm_isolate());
+ return !Utils::IsInt(32, imm) && (pp != kNoPP);
}
@@ -439,9 +433,7 @@ void Assembler::LoadObjectHelper(Register dst,
: object_pool_wrapper_.FindObject(object));
LoadWordFromPoolOffset(dst, pp, offset);
} else {
- ASSERT((Isolate::Current() == Dart::vm_isolate()) ||
- object.IsSmi() ||
- object.InVMHeap());
+ ASSERT(object.IsSmi() || object.InVMHeap());
LoadDecodableImmediate(dst, reinterpret_cast<int64_t>(object.raw()), pp);
}
}
@@ -473,17 +465,9 @@ void Assembler::CompareObject(Register reg, const Object& object, Register pp) {
void Assembler::LoadDecodableImmediate(Register reg, int64_t imm, Register pp) {
- if ((pp != kNoPP) &&
- (Isolate::Current() != Dart::vm_isolate()) &&
- allow_constant_pool()) {
- int64_t val_smi_tag = imm & kSmiTagMask;
- imm &= ~kSmiTagMask; // Mask off the tag bits.
+ if ((pp != kNoPP) && allow_constant_pool()) {
const int32_t offset = ObjectPool::element_offset(FindImmediate(imm));
LoadWordFromPoolOffset(reg, pp, offset);
- if (val_smi_tag != 0) {
- // Add back the tag bits.
- orri(reg, reg, Immediate(val_smi_tag));
- }
} else {
// TODO(zra): Since this sequence only needs to be decodable, it can be
// of variable length.
« no previous file with comments | « runtime/vm/assembler.cc ('k') | runtime/vm/assembler_x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698