| 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;
|
| }
|
|
|