OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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_COMPILER_CODE_ASSEMBLER_H_ | 5 #ifndef V8_COMPILER_CODE_ASSEMBLER_H_ |
6 #define V8_COMPILER_CODE_ASSEMBLER_H_ | 6 #define V8_COMPILER_CODE_ASSEMBLER_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 // Clients of this interface shouldn't depend on lots of compiler internals. | 10 // Clients of this interface shouldn't depend on lots of compiler internals. |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 | 228 |
229 void Bind(Label* label); | 229 void Bind(Label* label); |
230 void Goto(Label* label); | 230 void Goto(Label* label); |
231 void GotoIf(Node* condition, Label* true_label); | 231 void GotoIf(Node* condition, Label* true_label); |
232 void GotoUnless(Node* condition, Label* false_label); | 232 void GotoUnless(Node* condition, Label* false_label); |
233 void Branch(Node* condition, Label* true_label, Label* false_label); | 233 void Branch(Node* condition, Label* true_label, Label* false_label); |
234 | 234 |
235 void Switch(Node* index, Label* default_label, int32_t* case_values, | 235 void Switch(Node* index, Label* default_label, int32_t* case_values, |
236 Label** case_labels, size_t case_count); | 236 Label** case_labels, size_t case_count); |
237 | 237 |
| 238 Node* Select(Node* condition, Node* true_value, Node* false_value, |
| 239 MachineRepresentation rep = MachineRepresentation::kTagged); |
| 240 |
238 // Access to the frame pointer | 241 // Access to the frame pointer |
239 Node* LoadFramePointer(); | 242 Node* LoadFramePointer(); |
240 Node* LoadParentFramePointer(); | 243 Node* LoadParentFramePointer(); |
241 | 244 |
242 // Access to the stack pointer | 245 // Access to the stack pointer |
243 Node* LoadStackPointer(); | 246 Node* LoadStackPointer(); |
244 | 247 |
245 // Load raw memory location. | 248 // Load raw memory location. |
246 Node* Load(MachineType rep, Node* base); | 249 Node* Load(MachineType rep, Node* base); |
247 Node* Load(MachineType rep, Node* base, Node* index); | 250 Node* Load(MachineType rep, Node* base, Node* index); |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 // Map of variables to the list of value nodes that have been added from each | 432 // Map of variables to the list of value nodes that have been added from each |
430 // merge path in their order of merging. | 433 // merge path in their order of merging. |
431 std::map<Variable::Impl*, std::vector<Node*>> variable_merges_; | 434 std::map<Variable::Impl*, std::vector<Node*>> variable_merges_; |
432 }; | 435 }; |
433 | 436 |
434 } // namespace compiler | 437 } // namespace compiler |
435 } // namespace internal | 438 } // namespace internal |
436 } // namespace v8 | 439 } // namespace v8 |
437 | 440 |
438 #endif // V8_COMPILER_CODE_ASSEMBLER_H_ | 441 #endif // V8_COMPILER_CODE_ASSEMBLER_H_ |
OLD | NEW |