OLD | NEW |
| (Empty) |
1 // Copyright 2014 the V8 project authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef V8_COMPILER_UNITTESTS_NODE_MATCHERS_H_ | |
6 #define V8_COMPILER_UNITTESTS_NODE_MATCHERS_H_ | |
7 | |
8 #include "src/compiler/machine-operator.h" | |
9 #include "testing/gmock/include/gmock/gmock.h" | |
10 | |
11 namespace v8 { | |
12 namespace internal { | |
13 | |
14 // Forward declarations. | |
15 class HeapObject; | |
16 template <class T> | |
17 class PrintableUnique; | |
18 | |
19 namespace compiler { | |
20 | |
21 // Forward declarations. | |
22 class Node; | |
23 | |
24 using testing::Matcher; | |
25 | |
26 Matcher<Node*> IsBranch(const Matcher<Node*>& value_matcher, | |
27 const Matcher<Node*>& control_matcher); | |
28 Matcher<Node*> IsHeapConstant( | |
29 const Matcher<PrintableUnique<HeapObject> >& value_matcher); | |
30 Matcher<Node*> IsInt32Constant(const Matcher<int32_t>& value_matcher); | |
31 Matcher<Node*> IsPhi(const Matcher<Node*>& value0_matcher, | |
32 const Matcher<Node*>& value1_matcher, | |
33 const Matcher<Node*>& merge_matcher); | |
34 Matcher<Node*> IsProjection(const Matcher<int32_t>& index_matcher, | |
35 const Matcher<Node*>& base_matcher); | |
36 | |
37 Matcher<Node*> IsLoad(const Matcher<MachineType>& type_matcher, | |
38 const Matcher<Node*>& base_matcher, | |
39 const Matcher<Node*>& index_matcher, | |
40 const Matcher<Node*>& effect_matcher); | |
41 Matcher<Node*> IsStore(const Matcher<MachineType>& type_matcher, | |
42 const Matcher<WriteBarrierKind>& write_barrier_matcher, | |
43 const Matcher<Node*>& base_matcher, | |
44 const Matcher<Node*>& index_matcher, | |
45 const Matcher<Node*>& value_matcher, | |
46 const Matcher<Node*>& effect_matcher, | |
47 const Matcher<Node*>& control_matcher); | |
48 Matcher<Node*> IsWord32And(const Matcher<Node*>& lhs_matcher, | |
49 const Matcher<Node*>& rhs_matcher); | |
50 Matcher<Node*> IsWord32Sar(const Matcher<Node*>& lhs_matcher, | |
51 const Matcher<Node*>& rhs_matcher); | |
52 Matcher<Node*> IsWord32Ror(const Matcher<Node*>& lhs_matcher, | |
53 const Matcher<Node*>& rhs_matcher); | |
54 Matcher<Node*> IsWord32Equal(const Matcher<Node*>& lhs_matcher, | |
55 const Matcher<Node*>& rhs_matcher); | |
56 Matcher<Node*> IsWord64And(const Matcher<Node*>& lhs_matcher, | |
57 const Matcher<Node*>& rhs_matcher); | |
58 Matcher<Node*> IsWord64Shl(const Matcher<Node*>& lhs_matcher, | |
59 const Matcher<Node*>& rhs_matcher); | |
60 Matcher<Node*> IsWord64Sar(const Matcher<Node*>& lhs_matcher, | |
61 const Matcher<Node*>& rhs_matcher); | |
62 Matcher<Node*> IsWord64Equal(const Matcher<Node*>& lhs_matcher, | |
63 const Matcher<Node*>& rhs_matcher); | |
64 Matcher<Node*> IsInt32AddWithOverflow(const Matcher<Node*>& lhs_matcher, | |
65 const Matcher<Node*>& rhs_matcher); | |
66 Matcher<Node*> IsConvertInt64ToInt32(const Matcher<Node*>& input_matcher); | |
67 Matcher<Node*> IsChangeInt32ToFloat64(const Matcher<Node*>& input_matcher); | |
68 | |
69 } // namespace compiler | |
70 } // namespace internal | |
71 } // namespace v8 | |
72 | |
73 #endif // V8_COMPILER_UNITTESTS_NODE_MATCHERS_H_ | |
OLD | NEW |