Index: src/mips/lithium-mips.h |
diff --git a/src/mips/lithium-mips.h b/src/mips/lithium-mips.h |
index 01dd6c2438247ede4897620495f33a016a3ba994..c82d14823a0239103adef4ee477282b5d209dfa4 100644 |
--- a/src/mips/lithium-mips.h |
+++ b/src/mips/lithium-mips.h |
@@ -93,6 +93,8 @@ class LCodeGen; |
V(DebugBreak) \ |
V(DeclareGlobals) \ |
V(DeleteProperty) \ |
+ V(DeoptCounter) \ |
+ V(DeoptCounterAdd) \ |
V(Deoptimize) \ |
V(DivI) \ |
V(DoubleToI) \ |
@@ -429,6 +431,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") |