Revision: 18314
Author: [email protected]
Date: Mon Dec 16 13:08:24 2013 UTC
Log: Flush instruction cache for deserialized code objects.
This fixes the flaky crashes on ARM when running preparser test suite in
optdebug mode.
[email protected]
Review URL: https://chromiumcodereview.appspot.com/107543003
http://code.google.com/p/v8/source/detail?r=18314
Modified:
/branches/bleeding_edge/src/serialize.cc
/branches/bleeding_edge/src/serialize.h
=======================================
--- /branches/bleeding_edge/src/serialize.cc Fri Nov 22 11:35:39 2013 UTC
+++ /branches/bleeding_edge/src/serialize.cc Mon Dec 16 13:08:24 2013 UTC
@@ -792,6 +792,15 @@
reservations_[i] = kUninitializedReservation;
}
}
+
+
+void Deserializer::FlushICacheForNewCodeObjects() {
+ PageIterator it(isolate_->heap()->code_space());
+ while (it.has_next()) {
+ Page* p = it.next();
+ CPU::FlushICache(p->area_start(), p->area_end() - p->area_start());
+ }
+}
void Deserializer::Deserialize(Isolate* isolate) {
@@ -829,6 +838,8 @@
ExternalAsciiString::cast(source)->update_data_cache();
}
}
+
+ FlushICacheForNewCodeObjects();
// Issue code events for newly deserialized code objects.
LOG_CODE_EVENT(isolate_, LogCodeObjects());
=======================================
--- /branches/bleeding_edge/src/serialize.h Fri Nov 29 09:54:38 2013 UTC
+++ /branches/bleeding_edge/src/serialize.h Mon Dec 16 13:08:24 2013 UTC
@@ -377,6 +377,7 @@
return HeapObject::FromAddress(high_water_[space] - offset);
}
+ void FlushICacheForNewCodeObjects();
// Cached current isolate.
Isolate* isolate_;
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.