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