| Index: src/isolate.cc
|
| diff --git a/src/isolate.cc b/src/isolate.cc
|
| index cc9bc37bbf107bb958539adc28665b71ce28910a..a1635321302c5e30c31b07ab4d8154edf5c224d0 100644
|
| --- a/src/isolate.cc
|
| +++ b/src/isolate.cc
|
| @@ -414,6 +414,7 @@ Isolate::Isolate()
|
| runtime_profiler_(NULL),
|
| compilation_cache_(NULL),
|
| counters_(new Counters()),
|
| + cpu_features_(NULL),
|
| code_range_(NULL),
|
| break_access_(OS::CreateMutex()),
|
| logger_(new Logger()),
|
| @@ -592,6 +593,8 @@ Isolate::~Isolate() {
|
|
|
| delete counters_;
|
| counters_ = NULL;
|
| + delete cpu_features_;
|
| + cpu_features_ = NULL;
|
|
|
| delete handle_scope_implementer_;
|
| handle_scope_implementer_ = NULL;
|
| @@ -677,6 +680,7 @@ bool Isolate::PreInit() {
|
| write_input_buffer_ = new StringInputBuffer();
|
| global_handles_ = new GlobalHandles(this);
|
| bootstrapper_ = new Bootstrapper();
|
| + cpu_features_ = new CpuFeatures();
|
| handle_scope_implementer_ = new HandleScopeImplementer();
|
| stub_cache_ = new StubCache(this);
|
| ast_sentinels_ = new AstSentinels();
|
| @@ -721,6 +725,9 @@ bool Isolate::Init(Deserializer* des) {
|
| CpuProfiler::Setup();
|
| HeapProfiler::Setup();
|
|
|
| + // Setup the platform OS support.
|
| + OS::Setup();
|
| +
|
| // Initialize other runtime facilities
|
| #if defined(USE_SIMULATOR)
|
| #if defined(V8_TARGET_ARCH_ARM) || defined(V8_TARGET_ARCH_MIPS)
|
| @@ -779,6 +786,11 @@ bool Isolate::Init(Deserializer* des) {
|
| // stack guard.
|
| heap_.SetStackLimits();
|
|
|
| + // Setup the CPU support. Must be done after heap setup and after
|
| + // any deserialization because we have to have the initial heap
|
| + // objects in place for creating the code object used for probing.
|
| + CPU::Setup();
|
| +
|
| deoptimizer_data_ = new DeoptimizerData;
|
| runtime_profiler_ = new RuntimeProfiler(this);
|
| runtime_profiler_->Setup();
|
|
|