| Index: src/x64/lithium-x64.h
 | 
| diff --git a/src/x64/lithium-x64.h b/src/x64/lithium-x64.h
 | 
| index 36b080ff4bdedb598cb7d5feb9d8c9559cd9915e..e145f226efa3ff5db7ff37681bd975a95f8a27b0 100644
 | 
| --- a/src/x64/lithium-x64.h
 | 
| +++ b/src/x64/lithium-x64.h
 | 
| @@ -93,6 +93,8 @@ class LCodeGen;
 | 
|    V(DebugBreak)                                 \
 | 
|    V(DeclareGlobals)                             \
 | 
|    V(DeleteProperty)                             \
 | 
| +  V(DeoptCounter)                               \
 | 
| +  V(DeoptCounterAdd)                            \
 | 
|    V(Deoptimize)                                 \
 | 
|    V(DivI)                                       \
 | 
|    V(DoubleToI)                                  \
 | 
| @@ -432,6 +434,51 @@ class LDummyUse: public LTemplateInstruction<1, 1, 0> {
 | 
|  };
 | 
|  
 | 
|  
 | 
| +class LDeoptCounter: public LTemplateInstruction<0, 0, 0> {
 | 
| + public:
 | 
| +  LDeoptCounter(int id, int initial_value, int max_value)
 | 
| +      : id_(id),
 | 
| +        initial_value_(initial_value),
 | 
| +        max_value_(max_value) {
 | 
| +  }
 | 
| +
 | 
| +  DECLARE_CONCRETE_INSTRUCTION(DeoptCounter, "deopt_counter")
 | 
| +
 | 
| +  int id() const { return id_; }
 | 
| +  int initial_value() const { return initial_value_; }
 | 
| +  int max_value() const { return max_value_; }
 | 
| +
 | 
| + private:
 | 
| +  int id_;
 | 
| +  int initial_value_;
 | 
| +  int max_value_;
 | 
| +};
 | 
| +
 | 
| +
 | 
| +class LDeoptCounterAdd: public LTemplateInstruction<0, 0, 2> {
 | 
| + public:
 | 
| +  LDeoptCounterAdd(int counter,
 | 
| +                   int delta,
 | 
| +                   LOperand* temp,
 | 
| +                   LOperand* temp2) : counter_(counter),
 | 
| +                                      delta_(delta) {
 | 
| +    temps_[0] = temp;
 | 
| +    temps_[1] = temp2;
 | 
| +  }
 | 
| +
 | 
| +  DECLARE_CONCRETE_INSTRUCTION(DeoptCounterAdd, "deopt_counter_add")
 | 
| +
 | 
| +  LOperand* temp() { return temps_[0]; }
 | 
| +  LOperand* temp2() { return temps_[1]; }
 | 
| +  int counter() const { return counter_; }
 | 
| +  int delta() const { return delta_; }
 | 
| +
 | 
| + private:
 | 
| +  int counter_;
 | 
| +  int delta_;
 | 
| +};
 | 
| +
 | 
| +
 | 
|  class LDeoptimize: public LTemplateInstruction<0, 0, 0> {
 | 
|   public:
 | 
|    DECLARE_CONCRETE_INSTRUCTION(Deoptimize, "deoptimize")
 | 
| 
 |