| OLD | NEW | 
|---|
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "src/deoptimizer.h" | 5 #include "src/deoptimizer.h" | 
| 6 | 6 | 
| 7 #include <memory> | 7 #include <memory> | 
| 8 | 8 | 
| 9 #include "src/accessors.h" | 9 #include "src/accessors.h" | 
| 10 #include "src/assembler-inl.h" | 10 #include "src/assembler-inl.h" | 
| (...skipping 2302 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2313   int entry_count = data->deopt_entry_code_entries_[type]; | 2313   int entry_count = data->deopt_entry_code_entries_[type]; | 
| 2314   if (max_entry_id < entry_count) return; | 2314   if (max_entry_id < entry_count) return; | 
| 2315   entry_count = Max(entry_count, Deoptimizer::kMinNumberOfEntries); | 2315   entry_count = Max(entry_count, Deoptimizer::kMinNumberOfEntries); | 
| 2316   while (max_entry_id >= entry_count) entry_count *= 2; | 2316   while (max_entry_id >= entry_count) entry_count *= 2; | 
| 2317   CHECK(entry_count <= Deoptimizer::kMaxNumberOfEntries); | 2317   CHECK(entry_count <= Deoptimizer::kMaxNumberOfEntries); | 
| 2318 | 2318 | 
| 2319   MacroAssembler masm(isolate, NULL, 16 * KB, CodeObjectRequired::kYes); | 2319   MacroAssembler masm(isolate, NULL, 16 * KB, CodeObjectRequired::kYes); | 
| 2320   masm.set_emit_debug_code(false); | 2320   masm.set_emit_debug_code(false); | 
| 2321   GenerateDeoptimizationEntries(&masm, entry_count, type); | 2321   GenerateDeoptimizationEntries(&masm, entry_count, type); | 
| 2322   CodeDesc desc; | 2322   CodeDesc desc; | 
| 2323   masm.GetCode(&desc); | 2323   masm.GetCode(isolate, &desc); | 
| 2324   DCHECK(!RelocInfo::RequiresRelocation(isolate, desc)); | 2324   DCHECK(!RelocInfo::RequiresRelocation(isolate, desc)); | 
| 2325 | 2325 | 
| 2326   MemoryChunk* chunk = data->deopt_entry_code_[type]; | 2326   MemoryChunk* chunk = data->deopt_entry_code_[type]; | 
| 2327   CHECK(static_cast<int>(Deoptimizer::GetMaxDeoptTableSize()) >= | 2327   CHECK(static_cast<int>(Deoptimizer::GetMaxDeoptTableSize()) >= | 
| 2328         desc.instr_size); | 2328         desc.instr_size); | 
| 2329   if (!chunk->CommitArea(desc.instr_size)) { | 2329   if (!chunk->CommitArea(desc.instr_size)) { | 
| 2330     V8::FatalProcessOutOfMemory( | 2330     V8::FatalProcessOutOfMemory( | 
| 2331         "Deoptimizer::EnsureCodeForDeoptimizationEntry"); | 2331         "Deoptimizer::EnsureCodeForDeoptimizationEntry"); | 
| 2332   } | 2332   } | 
| 2333   CopyBytes(chunk->area_start(), desc.buffer, | 2333   CopyBytes(chunk->area_start(), desc.buffer, | 
| (...skipping 2122 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4456       CHECK(value_info->IsMaterializedObject()); | 4456       CHECK(value_info->IsMaterializedObject()); | 
| 4457 | 4457 | 
| 4458       value_info->value_ = | 4458       value_info->value_ = | 
| 4459           Handle<Object>(previously_materialized_objects->get(i), isolate_); | 4459           Handle<Object>(previously_materialized_objects->get(i), isolate_); | 
| 4460     } | 4460     } | 
| 4461   } | 4461   } | 
| 4462 } | 4462 } | 
| 4463 | 4463 | 
| 4464 }  // namespace internal | 4464 }  // namespace internal | 
| 4465 }  // namespace v8 | 4465 }  // namespace v8 | 
| OLD | NEW | 
|---|