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/compiler/code-generator.h" | 5 #include "src/compiler/code-generator.h" |
6 | 6 |
7 #include "src/compiler/code-generator-impl.h" | 7 #include "src/compiler/code-generator-impl.h" |
8 #include "src/compiler/linkage.h" | 8 #include "src/compiler/linkage.h" |
9 #include "src/compiler/pipeline.h" | 9 #include "src/compiler/pipeline.h" |
10 | 10 |
(...skipping 89 matching lines...) Loading... | |
100 kind = Code::OPTIMIZED_FUNCTION; | 100 kind = Code::OPTIMIZED_FUNCTION; |
101 } | 101 } |
102 Handle<Code> result = v8::internal::CodeGenerator::MakeCodeEpilogue( | 102 Handle<Code> result = v8::internal::CodeGenerator::MakeCodeEpilogue( |
103 masm(), Code::ComputeFlags(kind), info); | 103 masm(), Code::ComputeFlags(kind), info); |
104 result->set_is_turbofanned(true); | 104 result->set_is_turbofanned(true); |
105 result->set_stack_slots(frame()->GetSpillSlotCount()); | 105 result->set_stack_slots(frame()->GetSpillSlotCount()); |
106 result->set_safepoint_table_offset(safepoints()->GetCodeOffset()); | 106 result->set_safepoint_table_offset(safepoints()->GetCodeOffset()); |
107 | 107 |
108 PopulateDeoptimizationData(result); | 108 PopulateDeoptimizationData(result); |
109 | 109 |
110 #if V8_TARGET_ARCH_IA32 | |
titzer
2014/12/04 16:29:04
Please, no.
| |
111 if (!info->IsStub()) { | |
112 Deoptimizer::EnsureRelocSpaceForLazyDeoptimization(result); | |
113 } | |
114 #endif | |
115 | |
110 // Emit a code line info recording stop event. | 116 // Emit a code line info recording stop event. |
111 void* line_info = recorder->DetachJITHandlerData(); | 117 void* line_info = recorder->DetachJITHandlerData(); |
112 LOG_CODE_EVENT(isolate(), CodeEndLinePosInfoRecordEvent(*result, line_info)); | 118 LOG_CODE_EVENT(isolate(), CodeEndLinePosInfoRecordEvent(*result, line_info)); |
113 | 119 |
114 return result; | 120 return result; |
115 } | 121 } |
116 | 122 |
117 | 123 |
118 bool CodeGenerator::IsNextInAssemblyOrder(BasicBlock::RpoNumber block) const { | 124 bool CodeGenerator::IsNextInAssemblyOrder(BasicBlock::RpoNumber block) const { |
119 return code()->InstructionBlockAt(current_block_)->ao_number().IsNext( | 125 return code()->InstructionBlockAt(current_block_)->ao_number().IsNext( |
(...skipping 451 matching lines...) Loading... | |
571 : masm_(gen->masm()), next_(gen->ools_) { | 577 : masm_(gen->masm()), next_(gen->ools_) { |
572 gen->ools_ = this; | 578 gen->ools_ = this; |
573 } | 579 } |
574 | 580 |
575 | 581 |
576 OutOfLineCode::~OutOfLineCode() {} | 582 OutOfLineCode::~OutOfLineCode() {} |
577 | 583 |
578 } // namespace compiler | 584 } // namespace compiler |
579 } // namespace internal | 585 } // namespace internal |
580 } // namespace v8 | 586 } // namespace v8 |
OLD | NEW |