OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_CCTEST_COMPILER_CODEGEN_TESTER_H_ | 5 #ifndef V8_CCTEST_COMPILER_CODEGEN_TESTER_H_ |
6 #define V8_CCTEST_COMPILER_CODEGEN_TESTER_H_ | 6 #define V8_CCTEST_COMPILER_CODEGEN_TESTER_H_ |
7 | 7 |
8 #include "src/compiler/instruction-selector.h" | 8 #include "src/compiler/instruction-selector.h" |
9 #include "src/compiler/pipeline.h" | 9 #include "src/compiler/pipeline.h" |
10 #include "src/compiler/raw-machine-assembler.h" | 10 #include "src/compiler/raw-machine-assembler.h" |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 : BufferedRawMachineAssemblerTester(ComputeParameterCount(p0, p1, p2, p3), | 85 : BufferedRawMachineAssemblerTester(ComputeParameterCount(p0, p1, p2, p3), |
86 p0, p1, p2, p3) {} | 86 p0, p1, p2, p3) {} |
87 | 87 |
88 | 88 |
89 // The BufferedRawMachineAssemblerTester does not pass parameters directly | 89 // The BufferedRawMachineAssemblerTester does not pass parameters directly |
90 // to the constructed IR graph. Instead it passes a pointer to the parameter | 90 // to the constructed IR graph. Instead it passes a pointer to the parameter |
91 // to the IR graph, and adds Load nodes to the IR graph to load the | 91 // to the IR graph, and adds Load nodes to the IR graph to load the |
92 // parameters from memory. Thereby it is possible to pass 64 bit parameters | 92 // parameters from memory. Thereby it is possible to pass 64 bit parameters |
93 // to the IR graph. | 93 // to the IR graph. |
94 Node* Parameter(size_t index) { | 94 Node* Parameter(size_t index) { |
95 CHECK(index >= 0 && index < 4); | 95 CHECK(index < 4); |
96 return parameter_nodes_[index]; | 96 return parameter_nodes_[index]; |
97 } | 97 } |
98 | 98 |
99 | 99 |
100 // The BufferedRawMachineAssemblerTester adds a Store node to the IR graph | 100 // The BufferedRawMachineAssemblerTester adds a Store node to the IR graph |
101 // to store the graph's return value in memory. The memory address for the | 101 // to store the graph's return value in memory. The memory address for the |
102 // Store node is provided as a parameter. By storing the return value in | 102 // Store node is provided as a parameter. By storing the return value in |
103 // memory it is possible to return 64 bit values. | 103 // memory it is possible to return 64 bit values. |
104 void Return(Node* input) { | 104 void Return(Node* input) { |
105 Store(MachineTypeForC<ReturnType>().representation(), | 105 Store(MachineTypeForC<ReturnType>().representation(), |
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
553 } else { | 553 } else { |
554 CHECK_EQ(x, y); | 554 CHECK_EQ(x, y); |
555 } | 555 } |
556 } | 556 } |
557 | 557 |
558 } // namespace compiler | 558 } // namespace compiler |
559 } // namespace internal | 559 } // namespace internal |
560 } // namespace v8 | 560 } // namespace v8 |
561 | 561 |
562 #endif // V8_CCTEST_COMPILER_CODEGEN_TESTER_H_ | 562 #endif // V8_CCTEST_COMPILER_CODEGEN_TESTER_H_ |
OLD | NEW |