| Index: src/crankshaft/hydrogen-instructions.h
|
| diff --git a/src/crankshaft/hydrogen-instructions.h b/src/crankshaft/hydrogen-instructions.h
|
| index 18af113e9923057fbbd0ac662eaba442b55b2594..53e8b0f645006afddd10bcadb9b17679eb676742 100644
|
| --- a/src/crankshaft/hydrogen-instructions.h
|
| +++ b/src/crankshaft/hydrogen-instructions.h
|
| @@ -2395,13 +2395,19 @@ class HInvokeFunction final : public HBinaryCall {
|
|
|
| class HCallFunction final : public HBinaryCall {
|
| public:
|
| - DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HCallFunction, HValue*, int,
|
| - ConvertReceiverMode);
|
| + DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4(HCallFunction, HValue*, int,
|
| + ConvertReceiverMode,
|
| + TailCallMode);
|
|
|
| HValue* context() const { return first(); }
|
| HValue* function() const { return second(); }
|
|
|
| - ConvertReceiverMode convert_mode() const { return convert_mode_; }
|
| + ConvertReceiverMode convert_mode() const {
|
| + return ConvertReceiverModeField::decode(bit_field_);
|
| + }
|
| + TailCallMode tail_call_mode() const {
|
| + return TailCallModeField::decode(bit_field_);
|
| + }
|
| FeedbackVectorSlot slot() const { return slot_; }
|
| Handle<TypeFeedbackVector> feedback_vector() const {
|
| return feedback_vector_;
|
| @@ -2421,12 +2427,19 @@ class HCallFunction final : public HBinaryCall {
|
|
|
| private:
|
| HCallFunction(HValue* context, HValue* function, int argument_count,
|
| - ConvertReceiverMode convert_mode)
|
| + ConvertReceiverMode convert_mode, TailCallMode tail_call_mode)
|
| : HBinaryCall(context, function, argument_count),
|
| - convert_mode_(convert_mode) {}
|
| + bit_field_(ConvertReceiverModeField::encode(convert_mode) |
|
| + TailCallModeField::encode(tail_call_mode)) {}
|
| Handle<TypeFeedbackVector> feedback_vector_;
|
| FeedbackVectorSlot slot_;
|
| - ConvertReceiverMode convert_mode_;
|
| +
|
| + class ConvertReceiverModeField : public BitField<ConvertReceiverMode, 0, 2> {
|
| + };
|
| + class TailCallModeField
|
| + : public BitField<TailCallMode, ConvertReceiverModeField::kNext, 1> {};
|
| +
|
| + uint32_t bit_field_;
|
| };
|
|
|
|
|
|
|