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 2892 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2903 } | 2903 } |
2904 | 2904 |
2905 void InstructionSelector::VisitI16x8Sub(Node* node) { | 2905 void InstructionSelector::VisitI16x8Sub(Node* node) { |
2906 VisitRRR(this, kMips64I16x8Sub, node); | 2906 VisitRRR(this, kMips64I16x8Sub, node); |
2907 } | 2907 } |
2908 | 2908 |
2909 void InstructionSelector::VisitI16x8SubSaturateS(Node* node) { | 2909 void InstructionSelector::VisitI16x8SubSaturateS(Node* node) { |
2910 VisitRRR(this, kMips64I16x8SubSaturateS, node); | 2910 VisitRRR(this, kMips64I16x8SubSaturateS, node); |
2911 } | 2911 } |
2912 | 2912 |
| 2913 void InstructionSelector::VisitI16x8Mul(Node* node) { |
| 2914 VisitRRR(this, kMips64I16x8Mul, node); |
| 2915 } |
| 2916 |
| 2917 void InstructionSelector::VisitI16x8MaxS(Node* node) { |
| 2918 VisitRRR(this, kMips64I16x8MaxS, node); |
| 2919 } |
| 2920 |
| 2921 void InstructionSelector::VisitI16x8MinS(Node* node) { |
| 2922 VisitRRR(this, kMips64I16x8MinS, node); |
| 2923 } |
| 2924 |
| 2925 void InstructionSelector::VisitI16x8Eq(Node* node) { |
| 2926 VisitRRR(this, kMips64I16x8Eq, node); |
| 2927 } |
| 2928 |
| 2929 void InstructionSelector::VisitI16x8Ne(Node* node) { |
| 2930 VisitRRR(this, kMips64I16x8Ne, node); |
| 2931 } |
| 2932 |
| 2933 void InstructionSelector::VisitI16x8LtS(Node* node) { |
| 2934 VisitRRR(this, kMips64I16x8LtS, node); |
| 2935 } |
| 2936 |
| 2937 void InstructionSelector::VisitI16x8LeS(Node* node) { |
| 2938 VisitRRR(this, kMips64I16x8LeS, node); |
| 2939 } |
| 2940 |
| 2941 void InstructionSelector::VisitI16x8AddSaturateU(Node* node) { |
| 2942 VisitRRR(this, kMips64I16x8AddSaturateU, node); |
| 2943 } |
| 2944 |
| 2945 void InstructionSelector::VisitI16x8SubSaturateU(Node* node) { |
| 2946 VisitRRR(this, kMips64I16x8SubSaturateU, node); |
| 2947 } |
| 2948 |
| 2949 void InstructionSelector::VisitI16x8MaxU(Node* node) { |
| 2950 VisitRRR(this, kMips64I16x8MaxU, node); |
| 2951 } |
| 2952 |
| 2953 void InstructionSelector::VisitI16x8MinU(Node* node) { |
| 2954 VisitRRR(this, kMips64I16x8MinU, node); |
| 2955 } |
| 2956 |
| 2957 void InstructionSelector::VisitI16x8LtU(Node* node) { |
| 2958 VisitRRR(this, kMips64I16x8LtU, node); |
| 2959 } |
| 2960 |
| 2961 void InstructionSelector::VisitI16x8LeU(Node* node) { |
| 2962 VisitRRR(this, kMips64I16x8LeU, node); |
| 2963 } |
| 2964 |
| 2965 void InstructionSelector::VisitI8x16Splat(Node* node) { |
| 2966 VisitRR(this, kMips64I8x16Splat, node); |
| 2967 } |
| 2968 |
| 2969 void InstructionSelector::VisitI8x16ExtractLane(Node* node) { |
| 2970 VisitRRI(this, kMips64I8x16ExtractLane, node); |
| 2971 } |
| 2972 |
| 2973 void InstructionSelector::VisitI8x16ReplaceLane(Node* node) { |
| 2974 VisitRRIR(this, kMips64I8x16ReplaceLane, node); |
| 2975 } |
| 2976 |
| 2977 void InstructionSelector::VisitI8x16Neg(Node* node) { |
| 2978 VisitRR(this, kMips64I8x16Neg, node); |
| 2979 } |
| 2980 |
| 2981 void InstructionSelector::VisitI8x16Shl(Node* node) { |
| 2982 VisitRRI(this, kMips64I8x16Shl, node); |
| 2983 } |
| 2984 |
| 2985 void InstructionSelector::VisitI8x16ShrS(Node* node) { |
| 2986 VisitRRI(this, kMips64I8x16ShrS, node); |
| 2987 } |
| 2988 |
| 2989 void InstructionSelector::VisitS16x8Select(Node* node) { |
| 2990 VisitRRRR(this, kMips64S16x8Select, node); |
| 2991 } |
| 2992 |
| 2993 void InstructionSelector::VisitS8x16Select(Node* node) { |
| 2994 VisitRRRR(this, kMips64S8x16Select, node); |
| 2995 } |
| 2996 |
2913 // static | 2997 // static |
2914 MachineOperatorBuilder::Flags | 2998 MachineOperatorBuilder::Flags |
2915 InstructionSelector::SupportedMachineOperatorFlags() { | 2999 InstructionSelector::SupportedMachineOperatorFlags() { |
2916 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; | 3000 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; |
2917 return flags | MachineOperatorBuilder::kWord32Ctz | | 3001 return flags | MachineOperatorBuilder::kWord32Ctz | |
2918 MachineOperatorBuilder::kWord64Ctz | | 3002 MachineOperatorBuilder::kWord64Ctz | |
2919 MachineOperatorBuilder::kWord32Popcnt | | 3003 MachineOperatorBuilder::kWord32Popcnt | |
2920 MachineOperatorBuilder::kWord64Popcnt | | 3004 MachineOperatorBuilder::kWord64Popcnt | |
2921 MachineOperatorBuilder::kWord32ShiftIsSafe | | 3005 MachineOperatorBuilder::kWord32ShiftIsSafe | |
2922 MachineOperatorBuilder::kInt32DivIsSafe | | 3006 MachineOperatorBuilder::kInt32DivIsSafe | |
(...skipping 19 matching lines...) Expand all Loading... |
2942 } else { | 3026 } else { |
2943 DCHECK(kArchVariant == kMips64r2); | 3027 DCHECK(kArchVariant == kMips64r2); |
2944 return MachineOperatorBuilder::AlignmentRequirements:: | 3028 return MachineOperatorBuilder::AlignmentRequirements:: |
2945 NoUnalignedAccessSupport(); | 3029 NoUnalignedAccessSupport(); |
2946 } | 3030 } |
2947 } | 3031 } |
2948 | 3032 |
2949 } // namespace compiler | 3033 } // namespace compiler |
2950 } // namespace internal | 3034 } // namespace internal |
2951 } // namespace v8 | 3035 } // namespace v8 |
OLD | NEW |