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 2987 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2998 } | 2998 } |
2999 | 2999 |
3000 void InstructionSelector::VisitS16x8Select(Node* node) { | 3000 void InstructionSelector::VisitS16x8Select(Node* node) { |
3001 VisitRRRR(this, kMips64S16x8Select, node); | 3001 VisitRRRR(this, kMips64S16x8Select, node); |
3002 } | 3002 } |
3003 | 3003 |
3004 void InstructionSelector::VisitS8x16Select(Node* node) { | 3004 void InstructionSelector::VisitS8x16Select(Node* node) { |
3005 VisitRRRR(this, kMips64S8x16Select, node); | 3005 VisitRRRR(this, kMips64S8x16Select, node); |
3006 } | 3006 } |
3007 | 3007 |
| 3008 void InstructionSelector::VisitI8x16Add(Node* node) { |
| 3009 VisitRRR(this, kMips64I8x16Add, node); |
| 3010 } |
| 3011 |
| 3012 void InstructionSelector::VisitI8x16AddSaturateS(Node* node) { |
| 3013 VisitRRR(this, kMips64I8x16AddSaturateS, node); |
| 3014 } |
| 3015 |
| 3016 void InstructionSelector::VisitI8x16Sub(Node* node) { |
| 3017 VisitRRR(this, kMips64I8x16Sub, node); |
| 3018 } |
| 3019 |
| 3020 void InstructionSelector::VisitI8x16SubSaturateS(Node* node) { |
| 3021 VisitRRR(this, kMips64I8x16SubSaturateS, node); |
| 3022 } |
| 3023 |
| 3024 void InstructionSelector::VisitI8x16Mul(Node* node) { |
| 3025 VisitRRR(this, kMips64I8x16Mul, node); |
| 3026 } |
| 3027 |
| 3028 void InstructionSelector::VisitI8x16MaxS(Node* node) { |
| 3029 VisitRRR(this, kMips64I8x16MaxS, node); |
| 3030 } |
| 3031 |
| 3032 void InstructionSelector::VisitI8x16MinS(Node* node) { |
| 3033 VisitRRR(this, kMips64I8x16MinS, node); |
| 3034 } |
| 3035 |
| 3036 void InstructionSelector::VisitI8x16Eq(Node* node) { |
| 3037 VisitRRR(this, kMips64I8x16Eq, node); |
| 3038 } |
| 3039 |
| 3040 void InstructionSelector::VisitI8x16Ne(Node* node) { |
| 3041 VisitRRR(this, kMips64I8x16Ne, node); |
| 3042 } |
| 3043 |
| 3044 void InstructionSelector::VisitI8x16GtS(Node* node) { |
| 3045 VisitRRR(this, kMips64I8x16GtS, node); |
| 3046 } |
| 3047 |
| 3048 void InstructionSelector::VisitI8x16GeS(Node* node) { |
| 3049 VisitRRR(this, kMips64I8x16GeS, node); |
| 3050 } |
| 3051 |
| 3052 void InstructionSelector::VisitI8x16ShrU(Node* node) { |
| 3053 VisitRRI(this, kMips64I8x16ShrU, node); |
| 3054 } |
| 3055 |
| 3056 void InstructionSelector::VisitI8x16AddSaturateU(Node* node) { |
| 3057 VisitRRR(this, kMips64I8x16AddSaturateU, node); |
| 3058 } |
| 3059 |
| 3060 void InstructionSelector::VisitI8x16SubSaturateU(Node* node) { |
| 3061 VisitRRR(this, kMips64I8x16SubSaturateU, node); |
| 3062 } |
| 3063 |
| 3064 void InstructionSelector::VisitI8x16MaxU(Node* node) { |
| 3065 VisitRRR(this, kMips64I8x16MaxU, node); |
| 3066 } |
| 3067 |
| 3068 void InstructionSelector::VisitI8x16MinU(Node* node) { |
| 3069 VisitRRR(this, kMips64I8x16MinU, node); |
| 3070 } |
| 3071 |
| 3072 void InstructionSelector::VisitI8x16GtU(Node* node) { |
| 3073 VisitRRR(this, kMips64I8x16GtU, node); |
| 3074 } |
| 3075 |
| 3076 void InstructionSelector::VisitI8x16GeU(Node* node) { |
| 3077 VisitRRR(this, kMips64I8x16GeU, node); |
| 3078 } |
| 3079 |
| 3080 void InstructionSelector::VisitS128And(Node* node) { |
| 3081 VisitRRR(this, kMips64S128And, node); |
| 3082 } |
| 3083 |
| 3084 void InstructionSelector::VisitS128Or(Node* node) { |
| 3085 VisitRRR(this, kMips64S128Or, node); |
| 3086 } |
| 3087 |
| 3088 void InstructionSelector::VisitS128Xor(Node* node) { |
| 3089 VisitRRR(this, kMips64S128Xor, node); |
| 3090 } |
| 3091 |
| 3092 void InstructionSelector::VisitS128Not(Node* node) { |
| 3093 VisitRR(this, kMips64S128Not, node); |
| 3094 } |
| 3095 |
3008 // static | 3096 // static |
3009 MachineOperatorBuilder::Flags | 3097 MachineOperatorBuilder::Flags |
3010 InstructionSelector::SupportedMachineOperatorFlags() { | 3098 InstructionSelector::SupportedMachineOperatorFlags() { |
3011 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; | 3099 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; |
3012 return flags | MachineOperatorBuilder::kWord32Ctz | | 3100 return flags | MachineOperatorBuilder::kWord32Ctz | |
3013 MachineOperatorBuilder::kWord64Ctz | | 3101 MachineOperatorBuilder::kWord64Ctz | |
3014 MachineOperatorBuilder::kWord32Popcnt | | 3102 MachineOperatorBuilder::kWord32Popcnt | |
3015 MachineOperatorBuilder::kWord64Popcnt | | 3103 MachineOperatorBuilder::kWord64Popcnt | |
3016 MachineOperatorBuilder::kWord32ShiftIsSafe | | 3104 MachineOperatorBuilder::kWord32ShiftIsSafe | |
3017 MachineOperatorBuilder::kInt32DivIsSafe | | 3105 MachineOperatorBuilder::kInt32DivIsSafe | |
(...skipping 19 matching lines...) Expand all Loading... |
3037 } else { | 3125 } else { |
3038 DCHECK(kArchVariant == kMips64r2); | 3126 DCHECK(kArchVariant == kMips64r2); |
3039 return MachineOperatorBuilder::AlignmentRequirements:: | 3127 return MachineOperatorBuilder::AlignmentRequirements:: |
3040 NoUnalignedAccessSupport(); | 3128 NoUnalignedAccessSupport(); |
3041 } | 3129 } |
3042 } | 3130 } |
3043 | 3131 |
3044 } // namespace compiler | 3132 } // namespace compiler |
3045 } // namespace internal | 3133 } // namespace internal |
3046 } // namespace v8 | 3134 } // namespace v8 |
OLD | NEW |