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 2235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2246 } | 2246 } |
2247 | 2247 |
2248 void InstructionSelector::VisitS16x8Select(Node* node) { | 2248 void InstructionSelector::VisitS16x8Select(Node* node) { |
2249 VisitRRRR(this, kMipsS16x8Select, node); | 2249 VisitRRRR(this, kMipsS16x8Select, node); |
2250 } | 2250 } |
2251 | 2251 |
2252 void InstructionSelector::VisitS8x16Select(Node* node) { | 2252 void InstructionSelector::VisitS8x16Select(Node* node) { |
2253 VisitRRRR(this, kMipsS8x16Select, node); | 2253 VisitRRRR(this, kMipsS8x16Select, node); |
2254 } | 2254 } |
2255 | 2255 |
| 2256 void InstructionSelector::VisitI8x16Add(Node* node) { |
| 2257 VisitRRR(this, kMipsI8x16Add, node); |
| 2258 } |
| 2259 |
| 2260 void InstructionSelector::VisitI8x16AddSaturateS(Node* node) { |
| 2261 VisitRRR(this, kMipsI8x16AddSaturateS, node); |
| 2262 } |
| 2263 |
| 2264 void InstructionSelector::VisitI8x16Sub(Node* node) { |
| 2265 VisitRRR(this, kMipsI8x16Sub, node); |
| 2266 } |
| 2267 |
| 2268 void InstructionSelector::VisitI8x16SubSaturateS(Node* node) { |
| 2269 VisitRRR(this, kMipsI8x16SubSaturateS, node); |
| 2270 } |
| 2271 |
| 2272 void InstructionSelector::VisitI8x16Mul(Node* node) { |
| 2273 VisitRRR(this, kMipsI8x16Mul, node); |
| 2274 } |
| 2275 |
| 2276 void InstructionSelector::VisitI8x16MaxS(Node* node) { |
| 2277 VisitRRR(this, kMipsI8x16MaxS, node); |
| 2278 } |
| 2279 |
| 2280 void InstructionSelector::VisitI8x16MinS(Node* node) { |
| 2281 VisitRRR(this, kMipsI8x16MinS, node); |
| 2282 } |
| 2283 |
| 2284 void InstructionSelector::VisitI8x16Eq(Node* node) { |
| 2285 VisitRRR(this, kMipsI8x16Eq, node); |
| 2286 } |
| 2287 |
| 2288 void InstructionSelector::VisitI8x16Ne(Node* node) { |
| 2289 VisitRRR(this, kMipsI8x16Ne, node); |
| 2290 } |
| 2291 |
| 2292 void InstructionSelector::VisitI8x16GtS(Node* node) { |
| 2293 VisitRRR(this, kMipsI8x16GtS, node); |
| 2294 } |
| 2295 |
| 2296 void InstructionSelector::VisitI8x16GeS(Node* node) { |
| 2297 VisitRRR(this, kMipsI8x16GeS, node); |
| 2298 } |
| 2299 |
| 2300 void InstructionSelector::VisitI8x16ShrU(Node* node) { |
| 2301 VisitRRI(this, kMipsI8x16ShrU, node); |
| 2302 } |
| 2303 |
| 2304 void InstructionSelector::VisitI8x16AddSaturateU(Node* node) { |
| 2305 VisitRRR(this, kMipsI8x16AddSaturateU, node); |
| 2306 } |
| 2307 |
| 2308 void InstructionSelector::VisitI8x16SubSaturateU(Node* node) { |
| 2309 VisitRRR(this, kMipsI8x16SubSaturateU, node); |
| 2310 } |
| 2311 |
| 2312 void InstructionSelector::VisitI8x16MaxU(Node* node) { |
| 2313 VisitRRR(this, kMipsI8x16MaxU, node); |
| 2314 } |
| 2315 |
| 2316 void InstructionSelector::VisitI8x16MinU(Node* node) { |
| 2317 VisitRRR(this, kMipsI8x16MinU, node); |
| 2318 } |
| 2319 |
| 2320 void InstructionSelector::VisitI8x16GtU(Node* node) { |
| 2321 VisitRRR(this, kMipsI8x16GtU, node); |
| 2322 } |
| 2323 |
| 2324 void InstructionSelector::VisitI8x16GeU(Node* node) { |
| 2325 VisitRRR(this, kMipsI8x16GeU, node); |
| 2326 } |
| 2327 |
| 2328 void InstructionSelector::VisitS128And(Node* node) { |
| 2329 VisitRRR(this, kMipsS128And, node); |
| 2330 } |
| 2331 |
| 2332 void InstructionSelector::VisitS128Or(Node* node) { |
| 2333 VisitRRR(this, kMipsS128Or, node); |
| 2334 } |
| 2335 |
| 2336 void InstructionSelector::VisitS128Xor(Node* node) { |
| 2337 VisitRRR(this, kMipsS128Xor, node); |
| 2338 } |
| 2339 |
| 2340 void InstructionSelector::VisitS128Not(Node* node) { |
| 2341 VisitRR(this, kMipsS128Not, node); |
| 2342 } |
| 2343 |
2256 // static | 2344 // static |
2257 MachineOperatorBuilder::Flags | 2345 MachineOperatorBuilder::Flags |
2258 InstructionSelector::SupportedMachineOperatorFlags() { | 2346 InstructionSelector::SupportedMachineOperatorFlags() { |
2259 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; | 2347 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; |
2260 if ((IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) && | 2348 if ((IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) && |
2261 IsFp64Mode()) { | 2349 IsFp64Mode()) { |
2262 flags |= MachineOperatorBuilder::kFloat64RoundDown | | 2350 flags |= MachineOperatorBuilder::kFloat64RoundDown | |
2263 MachineOperatorBuilder::kFloat64RoundUp | | 2351 MachineOperatorBuilder::kFloat64RoundUp | |
2264 MachineOperatorBuilder::kFloat64RoundTruncate | | 2352 MachineOperatorBuilder::kFloat64RoundTruncate | |
2265 MachineOperatorBuilder::kFloat64RoundTiesEven; | 2353 MachineOperatorBuilder::kFloat64RoundTiesEven; |
(...skipping 22 matching lines...) Expand all Loading... |
2288 DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) || | 2376 DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) || |
2289 IsMipsArchVariant(kMips32r2)); | 2377 IsMipsArchVariant(kMips32r2)); |
2290 return MachineOperatorBuilder::AlignmentRequirements:: | 2378 return MachineOperatorBuilder::AlignmentRequirements:: |
2291 NoUnalignedAccessSupport(); | 2379 NoUnalignedAccessSupport(); |
2292 } | 2380 } |
2293 } | 2381 } |
2294 | 2382 |
2295 } // namespace compiler | 2383 } // namespace compiler |
2296 } // namespace internal | 2384 } // namespace internal |
2297 } // namespace v8 | 2385 } // namespace v8 |
OLD | NEW |