Index: src/compiler/code-generator.h |
diff --git a/src/compiler/code-generator.h b/src/compiler/code-generator.h |
index 8bacdf3bfa79ff6698bdf09758ce6f55f5a88e3d..14ee3517aee35997375f70ca274ef434f4d02553 100644 |
--- a/src/compiler/code-generator.h |
+++ b/src/compiler/code-generator.h |
@@ -46,8 +46,8 @@ class CodeGenerator V8_FINAL : public GapResolver::Assembler { |
} |
// Record a safepoint with the given pointer map. |
- void RecordSafepoint(PointerMap* pointers, Safepoint::Kind kind, |
- int arguments, Safepoint::DeoptMode deopt_mode); |
+ Safepoint::Id RecordSafepoint(PointerMap* pointers, Safepoint::Kind kind, |
+ int arguments, Safepoint::DeoptMode deopt_mode); |
// Assemble code for the specified instruction. |
void AssembleInstruction(Instruction* instr); |
@@ -82,7 +82,9 @@ class CodeGenerator V8_FINAL : public GapResolver::Assembler { |
// =========================================================================== |
// Deoptimization table construction |
void AddSafepointAndDeopt(Instruction* instr); |
- void RecordLazyDeoptimizationEntry(Instruction* instr); |
+ void UpdateSafepointsWithDeoptimizationPc(); |
+ void RecordLazyDeoptimizationEntry(Instruction* instr, |
+ Safepoint::Id safepoint_id); |
void PopulateDeoptimizationData(Handle<Code> code); |
int DefineDeoptimizationLiteral(Handle<Object> literal); |
void BuildTranslation(Instruction* instr, int first_argument_index, |
@@ -95,19 +97,22 @@ class CodeGenerator V8_FINAL : public GapResolver::Assembler { |
class LazyDeoptimizationEntry V8_FINAL { |
public: |
LazyDeoptimizationEntry(int position_after_call, Label* continuation, |
- Label* deoptimization) |
+ Label* deoptimization, Safepoint::Id safepoint_id) |
: position_after_call_(position_after_call), |
continuation_(continuation), |
- deoptimization_(deoptimization) {} |
+ deoptimization_(deoptimization), |
+ safepoint_id_(safepoint_id) {} |
int position_after_call() const { return position_after_call_; } |
Label* continuation() const { return continuation_; } |
Label* deoptimization() const { return deoptimization_; } |
+ Safepoint::Id safepoint_id() const { return safepoint_id_; } |
private: |
int position_after_call_; |
Label* continuation_; |
Label* deoptimization_; |
+ Safepoint::Id safepoint_id_; |
}; |
struct DeoptimizationState : ZoneObject { |