| 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);
|
| }
|
| }
|
| }
|
|
|