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

Unified Diff: src/serialize.cc

Issue 986553005: Contribution of PowerPC port (continuation of 422063005) - serialize.cc cleanup (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 9 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
Index: src/serialize.cc
diff --git a/src/serialize.cc b/src/serialize.cc
index 3a3a94144730e2c3c3c51ae3846242e74b7c114e..cdb9429ed47e1125f6af7e40b6c4f53daf751e0a 100644
--- a/src/serialize.cc
+++ b/src/serialize.cc
@@ -802,13 +802,13 @@ void Deserializer::ReadObject(int space_number, Object** write_back) {
// Turn internal references encoded as offsets back to absolute addresses.
Code* code = Code::cast(obj);
Address entry = code->entry();
- int mode_mask = RelocInfo::ModeMask(RelocInfo::INTERNAL_REFERENCE);
+ int mode_mask = RelocInfo::kInternalReferenceMask;
for (RelocIterator it(code, mode_mask); !it.done(); it.next()) {
RelocInfo* rinfo = it.rinfo();
intptr_t offset =
reinterpret_cast<intptr_t>(rinfo->target_internal_reference());
DCHECK(0 <= offset && offset <= code->instruction_size());
- rinfo->set_target_internal_reference(entry + offset);
+ rinfo->set_target_internal_reference(entry + offset, SKIP_ICACHE_FLUSH);
Yang 2015/03/09 08:03:56 Why do we need this flag? Is there any call site w
}
}
}
@@ -1953,18 +1953,20 @@ Address Serializer::ObjectSerializer::PrepareCode() {
code->MakeYoung(serializer_->isolate());
Address entry = original->entry();
int mode_mask = RelocInfo::kCodeTargetMask |
+ RelocInfo::kInternalReferenceMask |
RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT) |
RelocInfo::ModeMask(RelocInfo::EXTERNAL_REFERENCE) |
- RelocInfo::ModeMask(RelocInfo::RUNTIME_ENTRY) |
- RelocInfo::ModeMask(RelocInfo::INTERNAL_REFERENCE);
+ RelocInfo::ModeMask(RelocInfo::RUNTIME_ENTRY);
for (RelocIterator it(code, mode_mask); !it.done(); it.next()) {
RelocInfo* rinfo = it.rinfo();
- if (RelocInfo::IsInternalReference(rinfo->rmode())) {
+ if (RelocInfo::ModeMask(rinfo->rmode()) &
+ RelocInfo::kInternalReferenceMask) {
Yang 2015/03/09 08:03:56 Can we simply change the implementation of IsInter
// Convert internal references to relative offsets.
Address target = rinfo->target_internal_reference();
intptr_t offset = target - entry;
DCHECK(0 <= offset && offset <= original->instruction_size());
- rinfo->set_target_internal_reference(reinterpret_cast<Address>(offset));
+ rinfo->set_target_internal_reference(reinterpret_cast<Address>(offset),
Yang 2015/03/09 08:03:56 Afaict Assembler::set_target_internal_reference do
+ SKIP_ICACHE_FLUSH);
} else if (!(FLAG_enable_ool_constant_pool && rinfo->IsInConstantPool())) {
rinfo->WipeOut();
}
« src/debug.cc ('K') | « src/ppc/macro-assembler-ppc.cc ('k') | src/x64/assembler-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698