Index: src/serialize.cc |
diff --git a/src/serialize.cc b/src/serialize.cc |
index 64cce1a97f4d36fe0235b97c30251b67a230819c..2f394453b9f1860b5a141f8a698920a2ec4cfc17 100644 |
--- a/src/serialize.cc |
+++ b/src/serialize.cc |
@@ -899,8 +899,7 @@ void Deserializer::ReadObject(int space_number, Object** write_back) { |
DCHECK(space_number != CODE_SPACE); |
} |
#endif |
-#if V8_TARGET_ARCH_PPC && \ |
- (ABI_USES_FUNCTION_DESCRIPTORS || V8_OOL_CONSTANT_POOL) |
+#if V8_TARGET_ARCH_PPC |
// If we're on a platform that uses function descriptors |
// these jump tables make use of RelocInfo::INTERNAL_REFERENCE. |
// As the V8 serialization code doesn't handle that relocation type |
@@ -909,9 +908,10 @@ void Deserializer::ReadObject(int space_number, Object** write_back) { |
Code* code = reinterpret_cast<Code*>(HeapObject::FromAddress(address)); |
for (RelocIterator it(code); !it.done(); it.next()) { |
RelocInfo::Mode rmode = it.rinfo()->rmode(); |
- if (rmode == RelocInfo::INTERNAL_REFERENCE) { |
+ if (RelocInfo::IsInternalReference(rmode) || |
+ RelocInfo::IsInternalReferenceEncoded(rmode)) { |
Assembler::RelocateInternalReference(it.rinfo()->pc(), 0, |
- code->instruction_start()); |
+ code->instruction_start(), rmode); |
} |
} |
} |