Chromium Code Reviews| Index: src/compiler/node-matchers.h |
| diff --git a/src/compiler/node-matchers.h b/src/compiler/node-matchers.h |
| index fc11a0a8cf03f17e80b7a6d45196badf4e9adc7c..12e31a2adc00fac7b76254dd103947cb6a0bf94e 100644 |
| --- a/src/compiler/node-matchers.h |
| +++ b/src/compiler/node-matchers.h |
| @@ -204,6 +204,39 @@ typedef BinopMatcher<Float64Matcher, Float64Matcher> Float64BinopMatcher; |
| typedef BinopMatcher<NumberMatcher, NumberMatcher> NumberBinopMatcher; |
| +// A pattern matcher for JSCallFunction operations. |
| +struct JSCallFunctionMatcher FINAL : public NodeMatcher { |
|
jochen (gone - plz use gerrit)
2014/12/23 10:38:42
i see that this is done all over the place, but th
|
| + explicit JSCallFunctionMatcher(Node* const node) |
| + : NodeMatcher(node), function_(node->InputAt(0)) { |
| + DCHECK_EQ(IrOpcode::kJSCallFunction, opcode()); |
| + } |
| + |
| + typedef HeapObjectMatcher<JSFunction> Function; |
| + |
| + const Function& function() const { return function_; } |
| + Node* frame_state() const; |
| + |
| + // Formal parameters, including the receiver. |
| + typedef Node::Inputs::iterator const_iterator; |
| + const_iterator begin() const; |
| + const_iterator end() const; |
| + size_t size() const; |
| + |
| + private: |
| + Function const function_; |
| +}; |
|
jochen (gone - plz use gerrit)
2014/12/23 10:38:42
are you copying the matchers around? If yes, there
|
| + |
| + |
| +// A pattern matcher for JSCallRuntime operations. |
| +struct JSCallRuntimeMatcher FINAL : public NodeMatcher { |
| + explicit JSCallRuntimeMatcher(Node* const node) : NodeMatcher(node) { |
| + DCHECK_EQ(IrOpcode::kJSCallRuntime, opcode()); |
| + } |
| + |
| + const Runtime::Function* function() const; |
| +}; |
| + |
| + |
| template <class BinopMatcher, IrOpcode::Value kMulOpcode, |
| IrOpcode::Value kShiftOpcode> |
| struct ScaleMatcher { |