Flush ICache after deserializing code.
authoryangguo@chromium.org <yangguo@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 9 Jul 2014 07:32:55 +0000 (07:32 +0000)
committeryangguo@chromium.org <yangguo@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 9 Jul 2014 07:32:55 +0000 (07:32 +0000)
R=svenpanne@chromium.org

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

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

src/serialize.cc
src/serialize.h
test/cctest/cctest.status

index da298a4..ca7adcb 100644 (file)
@@ -1907,6 +1907,7 @@ Object* CodeSerializer::Deserialize(Isolate* isolate, ScriptData* data) {
   }
   Object* root;
   deserializer.DeserializePartial(isolate, &root);
+  deserializer.FlushICacheForNewCodeObjects();
   ASSERT(root->IsSharedFunctionInfo());
   return root;
 }
index df9cb68..6cc90ea 100644 (file)
@@ -249,6 +249,8 @@ class Deserializer: public SerializerDeserializer {
     reservations_[space_number] = reservation;
   }
 
+  void FlushICacheForNewCodeObjects();
+
  private:
   virtual void VisitPointers(Object** start, Object** end);
 
@@ -286,8 +288,6 @@ class Deserializer: public SerializerDeserializer {
     return HeapObject::FromAddress(high_water_[space] - offset);
   }
 
-  void FlushICacheForNewCodeObjects();
-
   // Cached current isolate.
   Isolate* isolate_;
 
index 40859c1..7820f15 100644 (file)
 ##############################################################################
 ['arch == arm', {
 
-  # Temporarily disabled test
-  'test-compiler/SerializeToplevel': [SKIP],
-
   # BUG(355): Test crashes on ARM.
   'test-log/ProfLazyMode': [SKIP],