Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 71bdb33ccd12d66fd1988b9badf38192c5ce6de1..b7fa6538a8ee36d9174a2b6272093605aac8206f 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -2186,23 +2186,38 @@ class HCallNamed V8_FINAL : public HUnaryCall { |
}; |
+enum CallMode { |
+ NORMAL_CALL, |
+ TAIL_CALL |
+}; |
+ |
+ |
class HCallFunction V8_FINAL : public HBinaryCall { |
public: |
- HCallFunction(HValue* context, HValue* function, int argument_count) |
- : HBinaryCall(context, function, argument_count) { |
+ HCallFunction(HValue* context, |
+ HValue* function, |
+ int argument_count, |
+ CallMode mode) |
+ : HBinaryCall(context, function, argument_count), call_mode_(mode) { |
} |
static HCallFunction* New(Zone* zone, |
HValue* context, |
HValue* function, |
- int argument_count) { |
- return new(zone) HCallFunction(context, function, argument_count); |
+ int argument_count, |
+ CallMode mode = NORMAL_CALL) { |
+ return new(zone) HCallFunction(context, function, argument_count, mode); |
} |
+ bool IsTailCall() { return call_mode_ == TAIL_CALL; } |
+ |
HValue* context() { return first(); } |
HValue* function() { return second(); } |
DECLARE_CONCRETE_INSTRUCTION(CallFunction) |
+ |
+ private: |
+ bool call_mode_; |
}; |
@@ -6885,6 +6900,8 @@ class HCheckMapValue V8_FINAL : public HTemplateInstruction<2> { |
DECLARE_CONCRETE_INSTRUCTION(CheckMapValue) |
protected: |
+ virtual int RedefinedOperandIndex() { return 0; } |
+ |
virtual bool DataEquals(HValue* other) V8_OVERRIDE { |
return true; |
} |