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 2768 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2779 } | 2779 } |
2780 | 2780 |
2781 void InstructionSelector::VisitI32x4MinU(Node* node) { | 2781 void InstructionSelector::VisitI32x4MinU(Node* node) { |
2782 VisitRRR(this, kMips64I32x4MinU, node); | 2782 VisitRRR(this, kMips64I32x4MinU, node); |
2783 } | 2783 } |
2784 | 2784 |
2785 void InstructionSelector::VisitS32x4Select(Node* node) { | 2785 void InstructionSelector::VisitS32x4Select(Node* node) { |
2786 VisitRRRR(this, kMips64S32x4Select, node); | 2786 VisitRRRR(this, kMips64S32x4Select, node); |
2787 } | 2787 } |
2788 | 2788 |
| 2789 void InstructionSelector::VisitF32x4Abs(Node* node) { |
| 2790 VisitRR(this, kMips64F32x4Abs, node); |
| 2791 } |
| 2792 |
| 2793 void InstructionSelector::VisitF32x4Neg(Node* node) { |
| 2794 VisitRR(this, kMips64F32x4Neg, node); |
| 2795 } |
| 2796 |
| 2797 void InstructionSelector::VisitF32x4RecipApprox(Node* node) { |
| 2798 VisitRR(this, kMips64F32x4RecipApprox, node); |
| 2799 } |
| 2800 |
| 2801 void InstructionSelector::VisitF32x4RecipRefine(Node* node) { |
| 2802 VisitRRR(this, kMips64F32x4RecipRefine, node); |
| 2803 } |
| 2804 |
| 2805 void InstructionSelector::VisitF32x4RecipSqrtApprox(Node* node) { |
| 2806 VisitRR(this, kMips64F32x4RecipSqrtApprox, node); |
| 2807 } |
| 2808 |
| 2809 void InstructionSelector::VisitF32x4RecipSqrtRefine(Node* node) { |
| 2810 VisitRRR(this, kMips64F32x4RecipSqrtRefine, node); |
| 2811 } |
| 2812 |
| 2813 void InstructionSelector::VisitF32x4Add(Node* node) { |
| 2814 VisitRRR(this, kMips64F32x4Add, node); |
| 2815 } |
| 2816 |
| 2817 void InstructionSelector::VisitF32x4Sub(Node* node) { |
| 2818 VisitRRR(this, kMips64F32x4Sub, node); |
| 2819 } |
| 2820 |
| 2821 void InstructionSelector::VisitF32x4Mul(Node* node) { |
| 2822 VisitRRR(this, kMips64F32x4Mul, node); |
| 2823 } |
| 2824 |
| 2825 void InstructionSelector::VisitF32x4Max(Node* node) { |
| 2826 VisitRRR(this, kMips64F32x4Max, node); |
| 2827 } |
| 2828 |
| 2829 void InstructionSelector::VisitF32x4Min(Node* node) { |
| 2830 VisitRRR(this, kMips64F32x4Min, node); |
| 2831 } |
| 2832 |
| 2833 void InstructionSelector::VisitF32x4Eq(Node* node) { |
| 2834 VisitRRR(this, kMips64F32x4Eq, node); |
| 2835 } |
| 2836 |
| 2837 void InstructionSelector::VisitF32x4Ne(Node* node) { |
| 2838 VisitRRR(this, kMips64F32x4Ne, node); |
| 2839 } |
| 2840 |
| 2841 void InstructionSelector::VisitF32x4Lt(Node* node) { |
| 2842 VisitRRR(this, kMips64F32x4Lt, node); |
| 2843 } |
| 2844 |
| 2845 void InstructionSelector::VisitF32x4Le(Node* node) { |
| 2846 VisitRRR(this, kMips64F32x4Le, node); |
| 2847 } |
| 2848 |
| 2849 void InstructionSelector::VisitI32x4SConvertF32x4(Node* node) { |
| 2850 VisitRR(this, kMips64I32x4SConvertF32x4, node); |
| 2851 } |
| 2852 |
| 2853 void InstructionSelector::VisitI32x4UConvertF32x4(Node* node) { |
| 2854 VisitRR(this, kMips64I32x4UConvertF32x4, node); |
| 2855 } |
| 2856 |
2789 // static | 2857 // static |
2790 MachineOperatorBuilder::Flags | 2858 MachineOperatorBuilder::Flags |
2791 InstructionSelector::SupportedMachineOperatorFlags() { | 2859 InstructionSelector::SupportedMachineOperatorFlags() { |
2792 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; | 2860 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; |
2793 return flags | MachineOperatorBuilder::kWord32Ctz | | 2861 return flags | MachineOperatorBuilder::kWord32Ctz | |
2794 MachineOperatorBuilder::kWord64Ctz | | 2862 MachineOperatorBuilder::kWord64Ctz | |
2795 MachineOperatorBuilder::kWord32Popcnt | | 2863 MachineOperatorBuilder::kWord32Popcnt | |
2796 MachineOperatorBuilder::kWord64Popcnt | | 2864 MachineOperatorBuilder::kWord64Popcnt | |
2797 MachineOperatorBuilder::kWord32ShiftIsSafe | | 2865 MachineOperatorBuilder::kWord32ShiftIsSafe | |
2798 MachineOperatorBuilder::kInt32DivIsSafe | | 2866 MachineOperatorBuilder::kInt32DivIsSafe | |
(...skipping 19 matching lines...) Expand all Loading... |
2818 } else { | 2886 } else { |
2819 DCHECK(kArchVariant == kMips64r2); | 2887 DCHECK(kArchVariant == kMips64r2); |
2820 return MachineOperatorBuilder::AlignmentRequirements:: | 2888 return MachineOperatorBuilder::AlignmentRequirements:: |
2821 NoUnalignedAccessSupport(); | 2889 NoUnalignedAccessSupport(); |
2822 } | 2890 } |
2823 } | 2891 } |
2824 | 2892 |
2825 } // namespace compiler | 2893 } // namespace compiler |
2826 } // namespace internal | 2894 } // namespace internal |
2827 } // namespace v8 | 2895 } // namespace v8 |
OLD | NEW |