Index: src/compiler/code-generator.h |
diff --git a/src/compiler/code-generator.h b/src/compiler/code-generator.h |
index 658394b3217ad79b00bfe632425f495dfd3f13e9..3cf2183e6152413a373dce2fb17f0460495b78ff 100644 |
--- a/src/compiler/code-generator.h |
+++ b/src/compiler/code-generator.h |
@@ -106,8 +106,10 @@ class CodeGenerator FINAL : public GapResolver::Assembler { |
void AssembleJumpTable(Label** targets, size_t target_count); |
// =========================================================================== |
- // Deoptimization table construction |
- void AddSafepointAndDeopt(Instruction* instr); |
+ // ================== Deoptimization table construction. ===================== |
+ // =========================================================================== |
+ |
+ void RecordCallPosition(Instruction* instr); |
void PopulateDeoptimizationData(Handle<Code> code); |
int DefineDeoptimizationLiteral(Handle<Object> literal); |
FrameStateDescriptor* GetFrameStateDescriptor(Instruction* instr, |
@@ -126,6 +128,7 @@ class CodeGenerator FINAL : public GapResolver::Assembler { |
void MarkLazyDeoptSite(); |
// =========================================================================== |
+ |
struct DeoptimizationState : ZoneObject { |
public: |
BailoutId bailout_id() const { return bailout_id_; } |
@@ -143,6 +146,11 @@ class CodeGenerator FINAL : public GapResolver::Assembler { |
int pc_offset_; |
}; |
+ struct HandlerInfo { |
+ Label* handler; |
+ int pc_offset; |
+ }; |
+ |
friend class OutOfLineCode; |
Frame* const frame_; |
@@ -155,8 +163,9 @@ class CodeGenerator FINAL : public GapResolver::Assembler { |
MacroAssembler masm_; |
GapResolver resolver_; |
SafepointTableBuilder safepoints_; |
+ ZoneVector<HandlerInfo> handlers_; |
ZoneDeque<DeoptimizationState*> deoptimization_states_; |
- ZoneDeque<Handle<Object> > deoptimization_literals_; |
+ ZoneDeque<Handle<Object>> deoptimization_literals_; |
TranslationBuffer translations_; |
int last_lazy_deopt_pc_; |
JumpTable* jump_tables_; |