Index: src/serialize.cc |
diff --git a/src/serialize.cc b/src/serialize.cc |
index 4b28d23fe9ac060f73c46c84fb5076739c99a7f5..ea3fa92061c0ce8bfa6296ad39ff6f8a6f41772f 100644 |
--- a/src/serialize.cc |
+++ b/src/serialize.cc |
@@ -1087,6 +1087,11 @@ void Deserializer::ReadChunk(Object** current, |
// current object. |
CASE_STATEMENT(kRootArray, kPlain, kStartOfObject, 0) |
CASE_BODY(kRootArray, kPlain, kStartOfObject, 0) |
+#if V8_OOL_CONSTANT_POOL |
+ // Find an object in the roots array and write a pointer to it to in code. |
+ CASE_STATEMENT(kRootArray, kFromCode, kStartOfObject, 0) |
+ CASE_BODY(kRootArray, kFromCode, kStartOfObject, 0) |
+#endif |
// Find an object in the partial snapshots cache and write a pointer to it |
// to the current object. |
CASE_STATEMENT(kPartialSnapshotCache, kPlain, kStartOfObject, 0) |
@@ -1118,6 +1123,12 @@ void Deserializer::ReadChunk(Object** current, |
// Find a builtin and write a pointer to it to the current object. |
CASE_STATEMENT(kBuiltin, kPlain, kStartOfObject, 0) |
CASE_BODY(kBuiltin, kPlain, kStartOfObject, 0) |
+#if V8_OOL_CONSTANT_POOL |
+ // Find a builtin code entry and write a pointer to it to the current |
+ // object. |
+ CASE_STATEMENT(kBuiltin, kPlain, kInnerPointer, 0) |
+ CASE_BODY(kBuiltin, kPlain, kInnerPointer, 0) |
+#endif |
// Find a builtin and write a pointer to it in the current code object. |
CASE_STATEMENT(kBuiltin, kFromCode, kInnerPointer, 0) |
CASE_BODY(kBuiltin, kFromCode, kInnerPointer, 0) |
@@ -1291,8 +1302,7 @@ int Serializer::RootIndex(HeapObject* heap_object, HowToCode from) { |
for (int i = 0; i < root_index_wave_front_; i++) { |
Object* root = heap->roots_array_start()[i]; |
if (!root->IsSmi() && root == heap_object) { |
-#if defined(V8_TARGET_ARCH_MIPS) || V8_OOL_CONSTANT_POOL || \ |
- defined(V8_TARGET_ARCH_MIPS64) |
+#if defined(V8_TARGET_ARCH_MIPS) || defined(V8_TARGET_ARCH_MIPS64) |
if (from == kFromCode) { |
// In order to avoid code bloat in the deserializer we don't have |
// support for the encoding that specifies a particular root should |
@@ -1866,6 +1876,7 @@ void CodeSerializer::SerializeBuiltin(Code* builtin, HowToCode how_to_code, |
} |
DCHECK((how_to_code == kPlain && where_to_point == kStartOfObject) || |
+ (how_to_code == kPlain && where_to_point == kInnerPointer) || |
(how_to_code == kFromCode && where_to_point == kInnerPointer)); |
int builtin_index = builtin->builtin_index(); |
DCHECK_LT(builtin_index, Builtins::builtin_count); |