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 2828 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2839 } | 2839 } |
2840 | 2840 |
2841 void InstructionSelector::VisitI32x4SConvertF32x4(Node* node) { | 2841 void InstructionSelector::VisitI32x4SConvertF32x4(Node* node) { |
2842 VisitRR(this, kMips64I32x4SConvertF32x4, node); | 2842 VisitRR(this, kMips64I32x4SConvertF32x4, node); |
2843 } | 2843 } |
2844 | 2844 |
2845 void InstructionSelector::VisitI32x4UConvertF32x4(Node* node) { | 2845 void InstructionSelector::VisitI32x4UConvertF32x4(Node* node) { |
2846 VisitRR(this, kMips64I32x4UConvertF32x4, node); | 2846 VisitRR(this, kMips64I32x4UConvertF32x4, node); |
2847 } | 2847 } |
2848 | 2848 |
| 2849 void InstructionSelector::VisitI32x4Neg(Node* node) { |
| 2850 VisitRR(this, kMips64I32x4Neg, node); |
| 2851 } |
| 2852 |
| 2853 void InstructionSelector::VisitI32x4LtS(Node* node) { |
| 2854 VisitRRR(this, kMips64I32x4LtS, node); |
| 2855 } |
| 2856 |
| 2857 void InstructionSelector::VisitI32x4LeS(Node* node) { |
| 2858 VisitRRR(this, kMips64I32x4LeS, node); |
| 2859 } |
| 2860 |
| 2861 void InstructionSelector::VisitI32x4LtU(Node* node) { |
| 2862 VisitRRR(this, kMips64I32x4LtU, node); |
| 2863 } |
| 2864 |
| 2865 void InstructionSelector::VisitI32x4LeU(Node* node) { |
| 2866 VisitRRR(this, kMips64I32x4LeU, node); |
| 2867 } |
| 2868 |
| 2869 void InstructionSelector::VisitI16x8Splat(Node* node) { |
| 2870 VisitRR(this, kMips64I16x8Splat, node); |
| 2871 } |
| 2872 |
| 2873 void InstructionSelector::VisitI16x8ExtractLane(Node* node) { |
| 2874 VisitRRI(this, kMips64I16x8ExtractLane, node); |
| 2875 } |
| 2876 |
| 2877 void InstructionSelector::VisitI16x8ReplaceLane(Node* node) { |
| 2878 VisitRRIR(this, kMips64I16x8ReplaceLane, node); |
| 2879 } |
| 2880 |
| 2881 void InstructionSelector::VisitI16x8Neg(Node* node) { |
| 2882 VisitRR(this, kMips64I16x8Neg, node); |
| 2883 } |
| 2884 |
| 2885 void InstructionSelector::VisitI16x8Shl(Node* node) { |
| 2886 VisitRRI(this, kMips64I16x8Shl, node); |
| 2887 } |
| 2888 |
| 2889 void InstructionSelector::VisitI16x8ShrS(Node* node) { |
| 2890 VisitRRI(this, kMips64I16x8ShrS, node); |
| 2891 } |
| 2892 |
| 2893 void InstructionSelector::VisitI16x8ShrU(Node* node) { |
| 2894 VisitRRI(this, kMips64I16x8ShrU, node); |
| 2895 } |
| 2896 |
| 2897 void InstructionSelector::VisitI16x8Add(Node* node) { |
| 2898 VisitRRR(this, kMips64I16x8Add, node); |
| 2899 } |
| 2900 |
| 2901 void InstructionSelector::VisitI16x8AddSaturateS(Node* node) { |
| 2902 VisitRRR(this, kMips64I16x8AddSaturateS, node); |
| 2903 } |
| 2904 |
| 2905 void InstructionSelector::VisitI16x8Sub(Node* node) { |
| 2906 VisitRRR(this, kMips64I16x8Sub, node); |
| 2907 } |
| 2908 |
| 2909 void InstructionSelector::VisitI16x8SubSaturateS(Node* node) { |
| 2910 VisitRRR(this, kMips64I16x8SubSaturateS, node); |
| 2911 } |
| 2912 |
2849 // static | 2913 // static |
2850 MachineOperatorBuilder::Flags | 2914 MachineOperatorBuilder::Flags |
2851 InstructionSelector::SupportedMachineOperatorFlags() { | 2915 InstructionSelector::SupportedMachineOperatorFlags() { |
2852 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; | 2916 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; |
2853 return flags | MachineOperatorBuilder::kWord32Ctz | | 2917 return flags | MachineOperatorBuilder::kWord32Ctz | |
2854 MachineOperatorBuilder::kWord64Ctz | | 2918 MachineOperatorBuilder::kWord64Ctz | |
2855 MachineOperatorBuilder::kWord32Popcnt | | 2919 MachineOperatorBuilder::kWord32Popcnt | |
2856 MachineOperatorBuilder::kWord64Popcnt | | 2920 MachineOperatorBuilder::kWord64Popcnt | |
2857 MachineOperatorBuilder::kWord32ShiftIsSafe | | 2921 MachineOperatorBuilder::kWord32ShiftIsSafe | |
2858 MachineOperatorBuilder::kInt32DivIsSafe | | 2922 MachineOperatorBuilder::kInt32DivIsSafe | |
(...skipping 19 matching lines...) Expand all Loading... |
2878 } else { | 2942 } else { |
2879 DCHECK(kArchVariant == kMips64r2); | 2943 DCHECK(kArchVariant == kMips64r2); |
2880 return MachineOperatorBuilder::AlignmentRequirements:: | 2944 return MachineOperatorBuilder::AlignmentRequirements:: |
2881 NoUnalignedAccessSupport(); | 2945 NoUnalignedAccessSupport(); |
2882 } | 2946 } |
2883 } | 2947 } |
2884 | 2948 |
2885 } // namespace compiler | 2949 } // namespace compiler |
2886 } // namespace internal | 2950 } // namespace internal |
2887 } // namespace v8 | 2951 } // namespace v8 |
OLD | NEW |