| Index: src/compiler/code-generator.h
|
| diff --git a/src/compiler/code-generator.h b/src/compiler/code-generator.h
|
| index 066a63019ccc13f6b4cd3fda615bc632a1713e51..78ac99016d08820e3dc19fb4d5f96ccf1087feae 100644
|
| --- a/src/compiler/code-generator.h
|
| +++ b/src/compiler/code-generator.h
|
| @@ -46,8 +46,8 @@ class CodeGenerator FINAL : public GapResolver::Assembler {
|
| }
|
|
|
| // Record a safepoint with the given pointer map.
|
| - Safepoint::Id RecordSafepoint(PointerMap* pointers, Safepoint::Kind kind,
|
| - int arguments, Safepoint::DeoptMode deopt_mode);
|
| + void RecordSafepoint(PointerMap* pointers, Safepoint::Kind kind,
|
| + int arguments, Safepoint::DeoptMode deopt_mode);
|
|
|
| // Assemble code for the specified instruction.
|
| void AssembleInstruction(Instruction* instr);
|
| @@ -84,12 +84,12 @@ class CodeGenerator FINAL : public GapResolver::Assembler {
|
| // ===========================================================================
|
| // Deoptimization table construction
|
| void AddSafepointAndDeopt(Instruction* instr);
|
| - void EmitLazyDeoptimizationCallTable();
|
| void PopulateDeoptimizationData(Handle<Code> code);
|
| int DefineDeoptimizationLiteral(Handle<Object> literal);
|
| FrameStateDescriptor* GetFrameStateDescriptor(Instruction* instr,
|
| int frame_state_offset);
|
| - int BuildTranslation(Instruction* instr, int frame_state_offset,
|
| + int BuildTranslation(Instruction* instr, int pc_offset,
|
| + int frame_state_offset,
|
| OutputFrameStateCombine state_combine);
|
| void BuildTranslationForFrameStateDescriptor(
|
| FrameStateDescriptor* descriptor, Instruction* instr,
|
| @@ -100,39 +100,21 @@ class CodeGenerator FINAL : public GapResolver::Assembler {
|
| void AddNopForSmiCodeInlining();
|
| // ===========================================================================
|
|
|
| - class DeoptimizationPoint : public ZoneObject {
|
| - public:
|
| - int state_id() const { return state_id_; }
|
| - int lazy_state_id() const { return lazy_state_id_; }
|
| - FrameStateDescriptor* descriptor() const { return descriptor_; }
|
| - Safepoint::Id safepoint() const { return safepoint_; }
|
| -
|
| - DeoptimizationPoint(int state_id, int lazy_state_id,
|
| - FrameStateDescriptor* descriptor,
|
| - Safepoint::Id safepoint)
|
| - : state_id_(state_id),
|
| - lazy_state_id_(lazy_state_id),
|
| - descriptor_(descriptor),
|
| - safepoint_(safepoint) {}
|
| -
|
| - private:
|
| - int state_id_;
|
| - int lazy_state_id_;
|
| - FrameStateDescriptor* descriptor_;
|
| - Safepoint::Id safepoint_;
|
| - };
|
| -
|
| struct DeoptimizationState : ZoneObject {
|
| public:
|
| BailoutId bailout_id() const { return bailout_id_; }
|
| int translation_id() const { return translation_id_; }
|
| + int pc_offset() const { return pc_offset_; }
|
|
|
| - DeoptimizationState(BailoutId bailout_id, int translation_id)
|
| - : bailout_id_(bailout_id), translation_id_(translation_id) {}
|
| + DeoptimizationState(BailoutId bailout_id, int translation_id, int pc_offset)
|
| + : bailout_id_(bailout_id),
|
| + translation_id_(translation_id),
|
| + pc_offset_(pc_offset) {}
|
|
|
| private:
|
| BailoutId bailout_id_;
|
| int translation_id_;
|
| + int pc_offset_;
|
| };
|
|
|
| InstructionSequence* code_;
|
| @@ -141,7 +123,6 @@ class CodeGenerator FINAL : public GapResolver::Assembler {
|
| MacroAssembler masm_;
|
| GapResolver resolver_;
|
| SafepointTableBuilder safepoints_;
|
| - ZoneDeque<DeoptimizationPoint*> deoptimization_points_;
|
| ZoneDeque<DeoptimizationState*> deoptimization_states_;
|
| ZoneDeque<Handle<Object> > deoptimization_literals_;
|
| TranslationBuffer translations_;
|
|
|