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 2141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2152 } | 2152 } |
2153 | 2153 |
2154 void InstructionSelector::VisitI16x8Sub(Node* node) { | 2154 void InstructionSelector::VisitI16x8Sub(Node* node) { |
2155 VisitRRR(this, kMipsI16x8Sub, node); | 2155 VisitRRR(this, kMipsI16x8Sub, node); |
2156 } | 2156 } |
2157 | 2157 |
2158 void InstructionSelector::VisitI16x8SubSaturateS(Node* node) { | 2158 void InstructionSelector::VisitI16x8SubSaturateS(Node* node) { |
2159 VisitRRR(this, kMipsI16x8SubSaturateS, node); | 2159 VisitRRR(this, kMipsI16x8SubSaturateS, node); |
2160 } | 2160 } |
2161 | 2161 |
| 2162 void InstructionSelector::VisitI16x8Mul(Node* node) { |
| 2163 VisitRRR(this, kMipsI16x8Mul, node); |
| 2164 } |
| 2165 |
| 2166 void InstructionSelector::VisitI16x8MaxS(Node* node) { |
| 2167 VisitRRR(this, kMipsI16x8MaxS, node); |
| 2168 } |
| 2169 |
| 2170 void InstructionSelector::VisitI16x8MinS(Node* node) { |
| 2171 VisitRRR(this, kMipsI16x8MinS, node); |
| 2172 } |
| 2173 |
| 2174 void InstructionSelector::VisitI16x8Eq(Node* node) { |
| 2175 VisitRRR(this, kMipsI16x8Eq, node); |
| 2176 } |
| 2177 |
| 2178 void InstructionSelector::VisitI16x8Ne(Node* node) { |
| 2179 VisitRRR(this, kMipsI16x8Ne, node); |
| 2180 } |
| 2181 |
| 2182 void InstructionSelector::VisitI16x8LtS(Node* node) { |
| 2183 VisitRRR(this, kMipsI16x8LtS, node); |
| 2184 } |
| 2185 |
| 2186 void InstructionSelector::VisitI16x8LeS(Node* node) { |
| 2187 VisitRRR(this, kMipsI16x8LeS, node); |
| 2188 } |
| 2189 |
| 2190 void InstructionSelector::VisitI16x8AddSaturateU(Node* node) { |
| 2191 VisitRRR(this, kMipsI16x8AddSaturateU, node); |
| 2192 } |
| 2193 |
| 2194 void InstructionSelector::VisitI16x8SubSaturateU(Node* node) { |
| 2195 VisitRRR(this, kMipsI16x8SubSaturateU, node); |
| 2196 } |
| 2197 |
| 2198 void InstructionSelector::VisitI16x8MaxU(Node* node) { |
| 2199 VisitRRR(this, kMipsI16x8MaxU, node); |
| 2200 } |
| 2201 |
| 2202 void InstructionSelector::VisitI16x8MinU(Node* node) { |
| 2203 VisitRRR(this, kMipsI16x8MinU, node); |
| 2204 } |
| 2205 |
| 2206 void InstructionSelector::VisitI16x8LtU(Node* node) { |
| 2207 VisitRRR(this, kMipsI16x8LtU, node); |
| 2208 } |
| 2209 |
| 2210 void InstructionSelector::VisitI16x8LeU(Node* node) { |
| 2211 VisitRRR(this, kMipsI16x8LeU, node); |
| 2212 } |
| 2213 |
| 2214 void InstructionSelector::VisitI8x16Splat(Node* node) { |
| 2215 VisitRR(this, kMipsI8x16Splat, node); |
| 2216 } |
| 2217 |
| 2218 void InstructionSelector::VisitI8x16ExtractLane(Node* node) { |
| 2219 VisitRRI(this, kMipsI8x16ExtractLane, node); |
| 2220 } |
| 2221 |
| 2222 void InstructionSelector::VisitI8x16ReplaceLane(Node* node) { |
| 2223 VisitRRIR(this, kMipsI8x16ReplaceLane, node); |
| 2224 } |
| 2225 |
| 2226 void InstructionSelector::VisitI8x16Neg(Node* node) { |
| 2227 VisitRR(this, kMipsI8x16Neg, node); |
| 2228 } |
| 2229 |
| 2230 void InstructionSelector::VisitI8x16Shl(Node* node) { |
| 2231 VisitRRI(this, kMipsI8x16Shl, node); |
| 2232 } |
| 2233 |
| 2234 void InstructionSelector::VisitI8x16ShrS(Node* node) { |
| 2235 VisitRRI(this, kMipsI8x16ShrS, node); |
| 2236 } |
| 2237 |
| 2238 void InstructionSelector::VisitS16x8Select(Node* node) { |
| 2239 VisitRRRR(this, kMipsS16x8Select, node); |
| 2240 } |
| 2241 |
| 2242 void InstructionSelector::VisitS8x16Select(Node* node) { |
| 2243 VisitRRRR(this, kMipsS8x16Select, node); |
| 2244 } |
| 2245 |
2162 // static | 2246 // static |
2163 MachineOperatorBuilder::Flags | 2247 MachineOperatorBuilder::Flags |
2164 InstructionSelector::SupportedMachineOperatorFlags() { | 2248 InstructionSelector::SupportedMachineOperatorFlags() { |
2165 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; | 2249 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; |
2166 if ((IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) && | 2250 if ((IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) && |
2167 IsFp64Mode()) { | 2251 IsFp64Mode()) { |
2168 flags |= MachineOperatorBuilder::kFloat64RoundDown | | 2252 flags |= MachineOperatorBuilder::kFloat64RoundDown | |
2169 MachineOperatorBuilder::kFloat64RoundUp | | 2253 MachineOperatorBuilder::kFloat64RoundUp | |
2170 MachineOperatorBuilder::kFloat64RoundTruncate | | 2254 MachineOperatorBuilder::kFloat64RoundTruncate | |
2171 MachineOperatorBuilder::kFloat64RoundTiesEven; | 2255 MachineOperatorBuilder::kFloat64RoundTiesEven; |
(...skipping 22 matching lines...) Expand all Loading... |
2194 DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) || | 2278 DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) || |
2195 IsMipsArchVariant(kMips32r2)); | 2279 IsMipsArchVariant(kMips32r2)); |
2196 return MachineOperatorBuilder::AlignmentRequirements:: | 2280 return MachineOperatorBuilder::AlignmentRequirements:: |
2197 NoUnalignedAccessSupport(); | 2281 NoUnalignedAccessSupport(); |
2198 } | 2282 } |
2199 } | 2283 } |
2200 | 2284 |
2201 } // namespace compiler | 2285 } // namespace compiler |
2202 } // namespace internal | 2286 } // namespace internal |
2203 } // namespace v8 | 2287 } // namespace v8 |
OLD | NEW |