| Index: src/compiler/instruction-selector.h
|
| diff --git a/src/compiler/instruction-selector.h b/src/compiler/instruction-selector.h
|
| index 26a27b9af4c6b5828a20c170f4302505405168fa..81a61671fb198292f03b0693605a5c675f3f156b 100644
|
| --- a/src/compiler/instruction-selector.h
|
| +++ b/src/compiler/instruction-selector.h
|
| @@ -28,6 +28,21 @@ struct SwitchInfo;
|
|
|
| typedef ZoneVector<InstructionOperand> InstructionOperandVector;
|
|
|
| +// This struct connects nodes of parameters which are going to be pushed on the
|
| +// call stack with their parameter index in the call descriptor of the callee.
|
| +class PushParameter {
|
| + public:
|
| + PushParameter() : node_(nullptr), parameter_index_(0) {}
|
| + PushParameter(Node* node, size_t parameter_index)
|
| + : node_(node), parameter_index_(parameter_index) {}
|
| +
|
| + Node* node() const { return node_; }
|
| + size_t parameter_index() const { return parameter_index_; }
|
| +
|
| + private:
|
| + Node* node_;
|
| + size_t parameter_index_;
|
| +};
|
|
|
| // Instruction selection generates an InstructionSequence for a given Schedule.
|
| class InstructionSelector final {
|
| @@ -233,7 +248,7 @@ class InstructionSelector final {
|
| void VisitReturn(Node* ret);
|
| void VisitThrow(Node* value);
|
|
|
| - void EmitPrepareArguments(NodeVector* arguments,
|
| + void EmitPrepareArguments(ZoneVector<compiler::PushParameter>* arguments,
|
| const CallDescriptor* descriptor, Node* node);
|
|
|
| // ===========================================================================
|
|
|