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 2302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2313 V(32x4) \ | 2313 V(32x4) \ |
2314 V(16x8) \ | 2314 V(16x8) \ |
2315 V(8x16) | 2315 V(8x16) |
2316 | 2316 |
2317 #define SIMD_ZERO_OP_LIST(V) \ | 2317 #define SIMD_ZERO_OP_LIST(V) \ |
2318 V(S128Zero) \ | 2318 V(S128Zero) \ |
2319 V(S1x4Zero) \ | 2319 V(S1x4Zero) \ |
2320 V(S1x8Zero) \ | 2320 V(S1x8Zero) \ |
2321 V(S1x16Zero) | 2321 V(S1x16Zero) |
2322 | 2322 |
2323 #define SIMD_UNOP_LIST(V) \ | 2323 #define SIMD_UNOP_LIST(V) \ |
2324 V(F32x4SConvertI32x4, kArmF32x4SConvertI32x4) \ | 2324 V(F32x4SConvertI32x4, kArmF32x4SConvertI32x4) \ |
2325 V(F32x4UConvertI32x4, kArmF32x4UConvertI32x4) \ | 2325 V(F32x4UConvertI32x4, kArmF32x4UConvertI32x4) \ |
2326 V(F32x4Abs, kArmF32x4Abs) \ | 2326 V(F32x4Abs, kArmF32x4Abs) \ |
2327 V(F32x4Neg, kArmF32x4Neg) \ | 2327 V(F32x4Neg, kArmF32x4Neg) \ |
2328 V(F32x4RecipApprox, kArmF32x4RecipApprox) \ | 2328 V(F32x4RecipApprox, kArmF32x4RecipApprox) \ |
2329 V(F32x4RecipSqrtApprox, kArmF32x4RecipSqrtApprox) \ | 2329 V(F32x4RecipSqrtApprox, kArmF32x4RecipSqrtApprox) \ |
2330 V(I32x4SConvertF32x4, kArmI32x4SConvertF32x4) \ | 2330 V(I32x4SConvertF32x4, kArmI32x4SConvertF32x4) \ |
2331 V(I32x4Neg, kArmI32x4Neg) \ | 2331 V(I32x4SConvertI16x8Low, kArmI32x4SConvertI16x8Low) \ |
2332 V(I32x4UConvertF32x4, kArmI32x4UConvertF32x4) \ | 2332 V(I32x4SConvertI16x8High, kArmI32x4SConvertI16x8High) \ |
2333 V(I16x8Neg, kArmI16x8Neg) \ | 2333 V(I32x4Neg, kArmI32x4Neg) \ |
2334 V(I8x16Neg, kArmI8x16Neg) \ | 2334 V(I32x4UConvertF32x4, kArmI32x4UConvertF32x4) \ |
2335 V(S128Not, kArmS128Not) \ | 2335 V(I32x4UConvertI16x8Low, kArmI32x4UConvertI16x8Low) \ |
2336 V(S1x4Not, kArmS128Not) \ | 2336 V(I32x4UConvertI16x8High, kArmI32x4UConvertI16x8High) \ |
2337 V(S1x4AnyTrue, kArmS1x4AnyTrue) \ | 2337 V(I16x8SConvertI8x16Low, kArmI16x8SConvertI8x16Low) \ |
2338 V(S1x4AllTrue, kArmS1x4AllTrue) \ | 2338 V(I16x8SConvertI8x16High, kArmI16x8SConvertI8x16High) \ |
2339 V(S1x8Not, kArmS128Not) \ | 2339 V(I16x8Neg, kArmI16x8Neg) \ |
2340 V(S1x8AnyTrue, kArmS1x8AnyTrue) \ | 2340 V(I16x8UConvertI8x16Low, kArmI16x8UConvertI8x16Low) \ |
2341 V(S1x8AllTrue, kArmS1x8AllTrue) \ | 2341 V(I16x8UConvertI8x16High, kArmI16x8UConvertI8x16High) \ |
2342 V(S1x16Not, kArmS128Not) \ | 2342 V(I8x16Neg, kArmI8x16Neg) \ |
2343 V(S1x16AnyTrue, kArmS1x16AnyTrue) \ | 2343 V(S128Not, kArmS128Not) \ |
| 2344 V(S1x4Not, kArmS128Not) \ |
| 2345 V(S1x4AnyTrue, kArmS1x4AnyTrue) \ |
| 2346 V(S1x4AllTrue, kArmS1x4AllTrue) \ |
| 2347 V(S1x8Not, kArmS128Not) \ |
| 2348 V(S1x8AnyTrue, kArmS1x8AnyTrue) \ |
| 2349 V(S1x8AllTrue, kArmS1x8AllTrue) \ |
| 2350 V(S1x16Not, kArmS128Not) \ |
| 2351 V(S1x16AnyTrue, kArmS1x16AnyTrue) \ |
2344 V(S1x16AllTrue, kArmS1x16AllTrue) | 2352 V(S1x16AllTrue, kArmS1x16AllTrue) |
2345 | 2353 |
2346 #define SIMD_SHIFT_OP_LIST(V) \ | 2354 #define SIMD_SHIFT_OP_LIST(V) \ |
2347 V(I32x4Shl) \ | 2355 V(I32x4Shl) \ |
2348 V(I32x4ShrS) \ | 2356 V(I32x4ShrS) \ |
2349 V(I32x4ShrU) \ | 2357 V(I32x4ShrU) \ |
2350 V(I16x8Shl) \ | 2358 V(I16x8Shl) \ |
2351 V(I16x8ShrS) \ | 2359 V(I16x8ShrS) \ |
2352 V(I16x8ShrU) \ | 2360 V(I16x8ShrU) \ |
2353 V(I8x16Shl) \ | 2361 V(I8x16Shl) \ |
(...skipping 18 matching lines...) Expand all Loading... |
2372 V(I32x4MinS, kArmI32x4MinS) \ | 2380 V(I32x4MinS, kArmI32x4MinS) \ |
2373 V(I32x4MaxS, kArmI32x4MaxS) \ | 2381 V(I32x4MaxS, kArmI32x4MaxS) \ |
2374 V(I32x4Eq, kArmI32x4Eq) \ | 2382 V(I32x4Eq, kArmI32x4Eq) \ |
2375 V(I32x4Ne, kArmI32x4Ne) \ | 2383 V(I32x4Ne, kArmI32x4Ne) \ |
2376 V(I32x4LtS, kArmI32x4LtS) \ | 2384 V(I32x4LtS, kArmI32x4LtS) \ |
2377 V(I32x4LeS, kArmI32x4LeS) \ | 2385 V(I32x4LeS, kArmI32x4LeS) \ |
2378 V(I32x4MinU, kArmI32x4MinU) \ | 2386 V(I32x4MinU, kArmI32x4MinU) \ |
2379 V(I32x4MaxU, kArmI32x4MaxU) \ | 2387 V(I32x4MaxU, kArmI32x4MaxU) \ |
2380 V(I32x4LtU, kArmI32x4LtU) \ | 2388 V(I32x4LtU, kArmI32x4LtU) \ |
2381 V(I32x4LeU, kArmI32x4LeU) \ | 2389 V(I32x4LeU, kArmI32x4LeU) \ |
| 2390 V(I16x8SConvertI32x4, kArmI16x8SConvertI32x4) \ |
2382 V(I16x8Add, kArmI16x8Add) \ | 2391 V(I16x8Add, kArmI16x8Add) \ |
2383 V(I16x8AddSaturateS, kArmI16x8AddSaturateS) \ | 2392 V(I16x8AddSaturateS, kArmI16x8AddSaturateS) \ |
2384 V(I16x8Sub, kArmI16x8Sub) \ | 2393 V(I16x8Sub, kArmI16x8Sub) \ |
2385 V(I16x8SubSaturateS, kArmI16x8SubSaturateS) \ | 2394 V(I16x8SubSaturateS, kArmI16x8SubSaturateS) \ |
2386 V(I16x8Mul, kArmI16x8Mul) \ | 2395 V(I16x8Mul, kArmI16x8Mul) \ |
2387 V(I16x8MinS, kArmI16x8MinS) \ | 2396 V(I16x8MinS, kArmI16x8MinS) \ |
2388 V(I16x8MaxS, kArmI16x8MaxS) \ | 2397 V(I16x8MaxS, kArmI16x8MaxS) \ |
2389 V(I16x8Eq, kArmI16x8Eq) \ | 2398 V(I16x8Eq, kArmI16x8Eq) \ |
2390 V(I16x8Ne, kArmI16x8Ne) \ | 2399 V(I16x8Ne, kArmI16x8Ne) \ |
2391 V(I16x8LtS, kArmI16x8LtS) \ | 2400 V(I16x8LtS, kArmI16x8LtS) \ |
2392 V(I16x8LeS, kArmI16x8LeS) \ | 2401 V(I16x8LeS, kArmI16x8LeS) \ |
| 2402 V(I16x8UConvertI32x4, kArmI16x8UConvertI32x4) \ |
2393 V(I16x8AddSaturateU, kArmI16x8AddSaturateU) \ | 2403 V(I16x8AddSaturateU, kArmI16x8AddSaturateU) \ |
2394 V(I16x8SubSaturateU, kArmI16x8SubSaturateU) \ | 2404 V(I16x8SubSaturateU, kArmI16x8SubSaturateU) \ |
2395 V(I16x8MinU, kArmI16x8MinU) \ | 2405 V(I16x8MinU, kArmI16x8MinU) \ |
2396 V(I16x8MaxU, kArmI16x8MaxU) \ | 2406 V(I16x8MaxU, kArmI16x8MaxU) \ |
2397 V(I16x8LtU, kArmI16x8LtU) \ | 2407 V(I16x8LtU, kArmI16x8LtU) \ |
2398 V(I16x8LeU, kArmI16x8LeU) \ | 2408 V(I16x8LeU, kArmI16x8LeU) \ |
| 2409 V(I8x16SConvertI16x8, kArmI8x16SConvertI16x8) \ |
2399 V(I8x16Add, kArmI8x16Add) \ | 2410 V(I8x16Add, kArmI8x16Add) \ |
2400 V(I8x16AddSaturateS, kArmI8x16AddSaturateS) \ | 2411 V(I8x16AddSaturateS, kArmI8x16AddSaturateS) \ |
2401 V(I8x16Sub, kArmI8x16Sub) \ | 2412 V(I8x16Sub, kArmI8x16Sub) \ |
2402 V(I8x16SubSaturateS, kArmI8x16SubSaturateS) \ | 2413 V(I8x16SubSaturateS, kArmI8x16SubSaturateS) \ |
2403 V(I8x16Mul, kArmI8x16Mul) \ | 2414 V(I8x16Mul, kArmI8x16Mul) \ |
2404 V(I8x16MinS, kArmI8x16MinS) \ | 2415 V(I8x16MinS, kArmI8x16MinS) \ |
2405 V(I8x16MaxS, kArmI8x16MaxS) \ | 2416 V(I8x16MaxS, kArmI8x16MaxS) \ |
2406 V(I8x16Eq, kArmI8x16Eq) \ | 2417 V(I8x16Eq, kArmI8x16Eq) \ |
2407 V(I8x16Ne, kArmI8x16Ne) \ | 2418 V(I8x16Ne, kArmI8x16Ne) \ |
2408 V(I8x16LtS, kArmI8x16LtS) \ | 2419 V(I8x16LtS, kArmI8x16LtS) \ |
2409 V(I8x16LeS, kArmI8x16LeS) \ | 2420 V(I8x16LeS, kArmI8x16LeS) \ |
| 2421 V(I8x16UConvertI16x8, kArmI8x16UConvertI16x8) \ |
2410 V(I8x16AddSaturateU, kArmI8x16AddSaturateU) \ | 2422 V(I8x16AddSaturateU, kArmI8x16AddSaturateU) \ |
2411 V(I8x16SubSaturateU, kArmI8x16SubSaturateU) \ | 2423 V(I8x16SubSaturateU, kArmI8x16SubSaturateU) \ |
2412 V(I8x16MinU, kArmI8x16MinU) \ | 2424 V(I8x16MinU, kArmI8x16MinU) \ |
2413 V(I8x16MaxU, kArmI8x16MaxU) \ | 2425 V(I8x16MaxU, kArmI8x16MaxU) \ |
2414 V(I8x16LtU, kArmI8x16LtU) \ | 2426 V(I8x16LtU, kArmI8x16LtU) \ |
2415 V(I8x16LeU, kArmI8x16LeU) \ | 2427 V(I8x16LeU, kArmI8x16LeU) \ |
2416 V(S128And, kArmS128And) \ | 2428 V(S128And, kArmS128And) \ |
2417 V(S128Or, kArmS128Or) \ | 2429 V(S128Or, kArmS128Or) \ |
2418 V(S128Xor, kArmS128Xor) \ | 2430 V(S128Xor, kArmS128Xor) \ |
2419 V(S1x4And, kArmS128And) \ | 2431 V(S1x4And, kArmS128And) \ |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2524 Vector<MachineType> req_aligned = Vector<MachineType>::New(2); | 2536 Vector<MachineType> req_aligned = Vector<MachineType>::New(2); |
2525 req_aligned[0] = MachineType::Float32(); | 2537 req_aligned[0] = MachineType::Float32(); |
2526 req_aligned[1] = MachineType::Float64(); | 2538 req_aligned[1] = MachineType::Float64(); |
2527 return MachineOperatorBuilder::AlignmentRequirements:: | 2539 return MachineOperatorBuilder::AlignmentRequirements:: |
2528 SomeUnalignedAccessUnsupported(req_aligned, req_aligned); | 2540 SomeUnalignedAccessUnsupported(req_aligned, req_aligned); |
2529 } | 2541 } |
2530 | 2542 |
2531 } // namespace compiler | 2543 } // namespace compiler |
2532 } // namespace internal | 2544 } // namespace internal |
2533 } // namespace v8 | 2545 } // namespace v8 |
OLD | NEW |