MIPS: Fix [de]serialize problem of root objects.
authorbalazs.kilvady@imgtec.com <balazs.kilvady@imgtec.com>
Thu, 28 Aug 2014 11:27:21 +0000 (11:27 +0000)
committerbalazs.kilvady@imgtec.com <balazs.kilvady@imgtec.com>
Thu, 28 Aug 2014 11:27:21 +0000 (11:27 +0000)
BUG
TEST=mjsunit/deserialize-reference
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/492303004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/serialize.cc
test/mjsunit/mjsunit.status

index 5de44fd..395e6fd 100644 (file)
@@ -1087,7 +1087,8 @@ void Deserializer::ReadChunk(Object** current,
       // current object.
       CASE_STATEMENT(kRootArray, kPlain, kStartOfObject, 0)
       CASE_BODY(kRootArray, kPlain, kStartOfObject, 0)
-#if V8_OOL_CONSTANT_POOL
+#if defined(V8_TARGET_ARCH_MIPS) || V8_OOL_CONSTANT_POOL || \
+    defined(V8_TARGET_ARCH_MIPS64)
       // 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)
@@ -1302,14 +1303,6 @@ 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) || 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
-        // be written from within code.
-        return kInvalidRootIndex;
-      }
-#endif
       return i;
     }
   }
index c48e7e4..b2c4510 100644 (file)
 
   # Currently always deopt on minus zero
   'math-floor-of-div-minus-zero': [SKIP],
-
-  # BUG(v8:3457).
-  'deserialize-reference': [SKIP],
 }],  # 'arch == mipsel or arch == mips'
 
 ##############################################################################
 
   # Currently always deopt on minus zero
   'math-floor-of-div-minus-zero': [SKIP],
-
-  # BUG(v8:3457).
-  'deserialize-reference': [SKIP],
 }],  # 'arch == mips64el'
 
 ['arch == mips64el and simulator_run == False', {