| 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 #include "src/base/adapters.h" | 5 #include "src/base/adapters.h" |
| 6 #include "src/base/bits.h" | 6 #include "src/base/bits.h" |
| 7 #include "src/compiler/instruction-selector-impl.h" | 7 #include "src/compiler/instruction-selector-impl.h" |
| 8 #include "src/compiler/node-matchers.h" | 8 #include "src/compiler/node-matchers.h" |
| 9 #include "src/compiler/node-properties.h" | 9 #include "src/compiler/node-properties.h" |
| 10 | 10 |
| (...skipping 2465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2476 SIMD_SHIFT_OP_LIST(SIMD_VISIT_SHIFT_OP) | 2476 SIMD_SHIFT_OP_LIST(SIMD_VISIT_SHIFT_OP) |
| 2477 #undef SIMD_VISIT_SHIFT_OP | 2477 #undef SIMD_VISIT_SHIFT_OP |
| 2478 | 2478 |
| 2479 #define SIMD_VISIT_SELECT_OP(format) \ | 2479 #define SIMD_VISIT_SELECT_OP(format) \ |
| 2480 void InstructionSelector::VisitSimd##format##Select(Node* node) { \ | 2480 void InstructionSelector::VisitSimd##format##Select(Node* node) { \ |
| 2481 VisitRRRR(this, kArmSimd128Select, node); \ | 2481 VisitRRRR(this, kArmSimd128Select, node); \ |
| 2482 } | 2482 } |
| 2483 SIMD_FORMAT_LIST(SIMD_VISIT_SELECT_OP) | 2483 SIMD_FORMAT_LIST(SIMD_VISIT_SELECT_OP) |
| 2484 #undef SIMD_VISIT_SELECT_OP | 2484 #undef SIMD_VISIT_SELECT_OP |
| 2485 | 2485 |
| 2486 void InstructionSelector::VisitInt32AbsWithOverflow(Node* node) { |
| 2487 UNREACHABLE(); |
| 2488 } |
| 2489 |
| 2490 void InstructionSelector::VisitInt64AbsWithOverflow(Node* node) { |
| 2491 UNREACHABLE(); |
| 2492 } |
| 2493 |
| 2486 // static | 2494 // static |
| 2487 MachineOperatorBuilder::Flags | 2495 MachineOperatorBuilder::Flags |
| 2488 InstructionSelector::SupportedMachineOperatorFlags() { | 2496 InstructionSelector::SupportedMachineOperatorFlags() { |
| 2489 MachineOperatorBuilder::Flags flags; | 2497 MachineOperatorBuilder::Flags flags; |
| 2490 if (CpuFeatures::IsSupported(SUDIV)) { | 2498 if (CpuFeatures::IsSupported(SUDIV)) { |
| 2491 // The sdiv and udiv instructions correctly return 0 if the divisor is 0, | 2499 // The sdiv and udiv instructions correctly return 0 if the divisor is 0, |
| 2492 // but the fall-back implementation does not. | 2500 // but the fall-back implementation does not. |
| 2493 flags |= MachineOperatorBuilder::kInt32DivIsSafe | | 2501 flags |= MachineOperatorBuilder::kInt32DivIsSafe | |
| 2494 MachineOperatorBuilder::kUint32DivIsSafe; | 2502 MachineOperatorBuilder::kUint32DivIsSafe; |
| 2495 } | 2503 } |
| (...skipping 20 matching lines...) Expand all Loading... |
| 2516 Vector<MachineType> req_aligned = Vector<MachineType>::New(2); | 2524 Vector<MachineType> req_aligned = Vector<MachineType>::New(2); |
| 2517 req_aligned[0] = MachineType::Float32(); | 2525 req_aligned[0] = MachineType::Float32(); |
| 2518 req_aligned[1] = MachineType::Float64(); | 2526 req_aligned[1] = MachineType::Float64(); |
| 2519 return MachineOperatorBuilder::AlignmentRequirements:: | 2527 return MachineOperatorBuilder::AlignmentRequirements:: |
| 2520 SomeUnalignedAccessUnsupported(req_aligned, req_aligned); | 2528 SomeUnalignedAccessUnsupported(req_aligned, req_aligned); |
| 2521 } | 2529 } |
| 2522 | 2530 |
| 2523 } // namespace compiler | 2531 } // namespace compiler |
| 2524 } // namespace internal | 2532 } // namespace internal |
| 2525 } // namespace v8 | 2533 } // namespace v8 |
| OLD | NEW |