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_COMPILER_INSTRUCTION_SELECTOR_H_ | 5 #ifndef V8_COMPILER_INSTRUCTION_SELECTOR_H_ |
6 #define V8_COMPILER_INSTRUCTION_SELECTOR_H_ | 6 #define V8_COMPILER_INSTRUCTION_SELECTOR_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "src/compiler/common-operator.h" | 10 #include "src/compiler/common-operator.h" |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 } | 221 } |
222 void MarkAsWord64(Node* node) { | 222 void MarkAsWord64(Node* node) { |
223 MarkAsRepresentation(MachineRepresentation::kWord64, node); | 223 MarkAsRepresentation(MachineRepresentation::kWord64, node); |
224 } | 224 } |
225 void MarkAsFloat32(Node* node) { | 225 void MarkAsFloat32(Node* node) { |
226 MarkAsRepresentation(MachineRepresentation::kFloat32, node); | 226 MarkAsRepresentation(MachineRepresentation::kFloat32, node); |
227 } | 227 } |
228 void MarkAsFloat64(Node* node) { | 228 void MarkAsFloat64(Node* node) { |
229 MarkAsRepresentation(MachineRepresentation::kFloat64, node); | 229 MarkAsRepresentation(MachineRepresentation::kFloat64, node); |
230 } | 230 } |
| 231 void MarkAsSimd128(Node* node) { |
| 232 MarkAsRepresentation(MachineRepresentation::kSimd128, node); |
| 233 } |
231 void MarkAsReference(Node* node) { | 234 void MarkAsReference(Node* node) { |
232 MarkAsRepresentation(MachineRepresentation::kTagged, node); | 235 MarkAsRepresentation(MachineRepresentation::kTagged, node); |
233 } | 236 } |
234 | 237 |
235 // Inform the register allocation of the representation of the unallocated | 238 // Inform the register allocation of the representation of the unallocated |
236 // operand {op}. | 239 // operand {op}. |
237 void MarkAsRepresentation(MachineRepresentation rep, | 240 void MarkAsRepresentation(MachineRepresentation rep, |
238 const InstructionOperand& op); | 241 const InstructionOperand& op); |
239 | 242 |
240 enum CallBufferFlag { | 243 enum CallBufferFlag { |
(...skipping 28 matching lines...) Expand all Loading... |
269 | 272 |
270 // Visit the node and generate code, if any. | 273 // Visit the node and generate code, if any. |
271 void VisitNode(Node* node); | 274 void VisitNode(Node* node); |
272 | 275 |
273 // Visit the node and generate code for IEEE 754 functions. | 276 // Visit the node and generate code for IEEE 754 functions. |
274 void VisitFloat64Ieee754Binop(Node*, InstructionCode code); | 277 void VisitFloat64Ieee754Binop(Node*, InstructionCode code); |
275 void VisitFloat64Ieee754Unop(Node*, InstructionCode code); | 278 void VisitFloat64Ieee754Unop(Node*, InstructionCode code); |
276 | 279 |
277 #define DECLARE_GENERATOR(x) void Visit##x(Node* node); | 280 #define DECLARE_GENERATOR(x) void Visit##x(Node* node); |
278 MACHINE_OP_LIST(DECLARE_GENERATOR) | 281 MACHINE_OP_LIST(DECLARE_GENERATOR) |
| 282 MACHINE_SIMD_RETURN_NUM_OP_LIST(DECLARE_GENERATOR) |
| 283 MACHINE_SIMD_RETURN_SIMD_OP_LIST(DECLARE_GENERATOR) |
279 #undef DECLARE_GENERATOR | 284 #undef DECLARE_GENERATOR |
280 | 285 |
281 void VisitFinishRegion(Node* node); | 286 void VisitFinishRegion(Node* node); |
282 void VisitParameter(Node* node); | 287 void VisitParameter(Node* node); |
283 void VisitIfException(Node* node); | 288 void VisitIfException(Node* node); |
284 void VisitOsrValue(Node* node); | 289 void VisitOsrValue(Node* node); |
285 void VisitPhi(Node* node); | 290 void VisitPhi(Node* node); |
286 void VisitProjection(Node* node); | 291 void VisitProjection(Node* node); |
287 void VisitConstant(Node* node); | 292 void VisitConstant(Node* node); |
288 void VisitCall(Node* call, BasicBlock* handler = nullptr); | 293 void VisitCall(Node* call, BasicBlock* handler = nullptr); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 IntVector virtual_registers_; | 334 IntVector virtual_registers_; |
330 InstructionScheduler* scheduler_; | 335 InstructionScheduler* scheduler_; |
331 Frame* frame_; | 336 Frame* frame_; |
332 }; | 337 }; |
333 | 338 |
334 } // namespace compiler | 339 } // namespace compiler |
335 } // namespace internal | 340 } // namespace internal |
336 } // namespace v8 | 341 } // namespace v8 |
337 | 342 |
338 #endif // V8_COMPILER_INSTRUCTION_SELECTOR_H_ | 343 #endif // V8_COMPILER_INSTRUCTION_SELECTOR_H_ |
OLD | NEW |