Index: src/compiler/instruction-selector.h |
diff --git a/src/compiler/instruction-selector.h b/src/compiler/instruction-selector.h |
index 26a27b9af4c6b5828a20c170f4302505405168fa..957547c8707b36cf0f63ae9332fcfab32de8540f 100644 |
--- a/src/compiler/instruction-selector.h |
+++ b/src/compiler/instruction-selector.h |
@@ -28,6 +28,20 @@ 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), type_(MachineType::None()) {} |
+ PushParameter(Node* node, MachineType type) : node_(node), type_(type) {} |
+ |
+ Node* node() const { return node_; } |
+ MachineType type() const { return type_; } |
+ |
+ private: |
+ Node* node_; |
+ MachineType type_; |
+}; |
// Instruction selection generates an InstructionSequence for a given Schedule. |
class InstructionSelector final { |
@@ -233,7 +247,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); |
// =========================================================================== |