| 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 |