OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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 #ifndef V8_WASM_OPCODES_H_ | 5 #ifndef V8_WASM_OPCODES_H_ |
6 #define V8_WASM_OPCODES_H_ | 6 #define V8_WASM_OPCODES_H_ |
7 | 7 |
8 #include "src/globals.h" | 8 #include "src/globals.h" |
9 #include "src/machine-type.h" | 9 #include "src/machine-type.h" |
10 #include "src/runtime/runtime.h" | 10 #include "src/runtime/runtime.h" |
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 V(I8x16LtU, 0xe572, s1x16_ss) \ | 380 V(I8x16LtU, 0xe572, s1x16_ss) \ |
381 V(I8x16LeU, 0xe573, s1x16_ss) \ | 381 V(I8x16LeU, 0xe573, s1x16_ss) \ |
382 V(I8x16GtU, 0xe574, s1x16_ss) \ | 382 V(I8x16GtU, 0xe574, s1x16_ss) \ |
383 V(I8x16GeU, 0xe575, s1x16_ss) \ | 383 V(I8x16GeU, 0xe575, s1x16_ss) \ |
384 V(I8x16SConvertI16x8, 0xe59e, s_ss) \ | 384 V(I8x16SConvertI16x8, 0xe59e, s_ss) \ |
385 V(I8x16UConvertI16x8, 0xe59f, s_ss) \ | 385 V(I8x16UConvertI16x8, 0xe59f, s_ss) \ |
386 V(S128And, 0xe576, s_ss) \ | 386 V(S128And, 0xe576, s_ss) \ |
387 V(S128Or, 0xe577, s_ss) \ | 387 V(S128Or, 0xe577, s_ss) \ |
388 V(S128Xor, 0xe578, s_ss) \ | 388 V(S128Xor, 0xe578, s_ss) \ |
389 V(S128Not, 0xe579, s_s) \ | 389 V(S128Not, 0xe579, s_s) \ |
390 V(S32x4ZipLeft, 0xe5a0, s_ss) \ | |
391 V(S32x4ZipRight, 0xe5a1, s_ss) \ | |
392 V(S32x4UnzipLeft, 0xe5a2, s_ss) \ | |
393 V(S32x4UnzipRight, 0xe5a3, s_ss) \ | |
394 V(S32x4TransposeLeft, 0xe5a4, s_ss) \ | |
395 V(S32x4TransposeRight, 0xe5a5, s_ss) \ | |
396 V(S32x4Select, 0xe52c, s_s1x4ss) \ | 390 V(S32x4Select, 0xe52c, s_s1x4ss) \ |
397 V(S16x8ZipLeft, 0xe5a6, s_ss) \ | |
398 V(S16x8ZipRight, 0xe5a7, s_ss) \ | |
399 V(S16x8UnzipLeft, 0xe5a8, s_ss) \ | |
400 V(S16x8UnzipRight, 0xe5a9, s_ss) \ | |
401 V(S16x8TransposeLeft, 0xe5aa, s_ss) \ | |
402 V(S16x8TransposeRight, 0xe5ab, s_ss) \ | |
403 V(S16x8Select, 0xe54b, s_s1x8ss) \ | 391 V(S16x8Select, 0xe54b, s_s1x8ss) \ |
404 V(S8x16ZipLeft, 0xe5ac, s_ss) \ | |
405 V(S8x16ZipRight, 0xe5ad, s_ss) \ | |
406 V(S8x16UnzipLeft, 0xe5ae, s_ss) \ | |
407 V(S8x16UnzipRight, 0xe5af, s_ss) \ | |
408 V(S8x16TransposeLeft, 0xe5b0, s_ss) \ | |
409 V(S8x16TransposeRight, 0xe5b1, s_ss) \ | |
410 V(S8x16Select, 0xe56a, s_s1x16ss) \ | 392 V(S8x16Select, 0xe56a, s_s1x16ss) \ |
411 V(S32x2Reverse, 0xe5b2, s_s) \ | |
412 V(S16x4Reverse, 0xe5b3, s_s) \ | |
413 V(S16x2Reverse, 0xe5b4, s_s) \ | |
414 V(S8x8Reverse, 0xe5b5, s_s) \ | |
415 V(S8x4Reverse, 0xe5b6, s_s) \ | |
416 V(S8x2Reverse, 0xe5b7, s_s) \ | |
417 V(S1x4And, 0xe580, s1x4_s1x4s1x4) \ | 393 V(S1x4And, 0xe580, s1x4_s1x4s1x4) \ |
418 V(S1x4Or, 0xe581, s1x4_s1x4s1x4) \ | 394 V(S1x4Or, 0xe581, s1x4_s1x4s1x4) \ |
419 V(S1x4Xor, 0xe582, s1x4_s1x4s1x4) \ | 395 V(S1x4Xor, 0xe582, s1x4_s1x4s1x4) \ |
420 V(S1x4Not, 0xe583, s1x4_s1x4) \ | 396 V(S1x4Not, 0xe583, s1x4_s1x4) \ |
421 V(S1x4AnyTrue, 0xe584, i_s1x4) \ | 397 V(S1x4AnyTrue, 0xe584, i_s1x4) \ |
422 V(S1x4AllTrue, 0xe585, i_s1x4) \ | 398 V(S1x4AllTrue, 0xe585, i_s1x4) \ |
423 V(S1x8And, 0xe586, s1x8_s1x8s1x8) \ | 399 V(S1x8And, 0xe586, s1x8_s1x8s1x8) \ |
424 V(S1x8Or, 0xe587, s1x8_s1x8s1x8) \ | 400 V(S1x8Or, 0xe587, s1x8_s1x8s1x8) \ |
425 V(S1x8Xor, 0xe588, s1x8_s1x8s1x8) \ | 401 V(S1x8Xor, 0xe588, s1x8_s1x8s1x8) \ |
426 V(S1x8Not, 0xe589, s1x8_s1x8) \ | 402 V(S1x8Not, 0xe589, s1x8_s1x8) \ |
(...skipping 16 matching lines...) Expand all Loading... |
443 V(I32x4ShrU, 0xe532, _) \ | 419 V(I32x4ShrU, 0xe532, _) \ |
444 V(I16x8ExtractLane, 0xe539, _) \ | 420 V(I16x8ExtractLane, 0xe539, _) \ |
445 V(I16x8ReplaceLane, 0xe53a, _) \ | 421 V(I16x8ReplaceLane, 0xe53a, _) \ |
446 V(I16x8Shl, 0xe543, _) \ | 422 V(I16x8Shl, 0xe543, _) \ |
447 V(I16x8ShrS, 0xe544, _) \ | 423 V(I16x8ShrS, 0xe544, _) \ |
448 V(I16x8ShrU, 0xe552, _) \ | 424 V(I16x8ShrU, 0xe552, _) \ |
449 V(I8x16ExtractLane, 0xe558, _) \ | 425 V(I8x16ExtractLane, 0xe558, _) \ |
450 V(I8x16ReplaceLane, 0xe559, _) \ | 426 V(I8x16ReplaceLane, 0xe559, _) \ |
451 V(I8x16Shl, 0xe562, _) \ | 427 V(I8x16Shl, 0xe562, _) \ |
452 V(I8x16ShrS, 0xe563, _) \ | 428 V(I8x16ShrS, 0xe563, _) \ |
453 V(I8x16ShrU, 0xe571, _) \ | 429 V(I8x16ShrU, 0xe571, _) |
454 V(S8x16Concat, 0xe5b8, _) | 430 |
| 431 #define FOREACH_SIMD_MASK_OPERAND_OPCODE(V) \ |
| 432 V(S32x4Shuffle, 0xe52d, s_ss) \ |
| 433 V(S16x8Shuffle, 0xe54c, s_ss) \ |
| 434 V(S8x16Shuffle, 0xe56b, s_ss) |
455 | 435 |
456 #define FOREACH_ATOMIC_OPCODE(V) \ | 436 #define FOREACH_ATOMIC_OPCODE(V) \ |
457 V(I32AtomicAdd8S, 0xe601, i_ii) \ | 437 V(I32AtomicAdd8S, 0xe601, i_ii) \ |
458 V(I32AtomicAdd8U, 0xe602, i_ii) \ | 438 V(I32AtomicAdd8U, 0xe602, i_ii) \ |
459 V(I32AtomicAdd16S, 0xe603, i_ii) \ | 439 V(I32AtomicAdd16S, 0xe603, i_ii) \ |
460 V(I32AtomicAdd16U, 0xe604, i_ii) \ | 440 V(I32AtomicAdd16U, 0xe604, i_ii) \ |
461 V(I32AtomicAdd, 0xe605, i_ii) \ | 441 V(I32AtomicAdd, 0xe605, i_ii) \ |
462 V(I32AtomicAnd8S, 0xe606, i_ii) \ | 442 V(I32AtomicAnd8S, 0xe606, i_ii) \ |
463 V(I32AtomicAnd8U, 0xe607, i_ii) \ | 443 V(I32AtomicAnd8U, 0xe607, i_ii) \ |
464 V(I32AtomicAnd16S, 0xe608, i_ii) \ | 444 V(I32AtomicAnd16S, 0xe608, i_ii) \ |
(...skipping 19 matching lines...) Expand all Loading... |
484 V(I32AtomicSub16S, 0xe61c, i_ii) \ | 464 V(I32AtomicSub16S, 0xe61c, i_ii) \ |
485 V(I32AtomicSub16U, 0xe61d, i_ii) \ | 465 V(I32AtomicSub16U, 0xe61d, i_ii) \ |
486 V(I32AtomicSub, 0xe61e, i_ii) \ | 466 V(I32AtomicSub, 0xe61e, i_ii) \ |
487 V(I32AtomicXor8S, 0xe61f, i_ii) \ | 467 V(I32AtomicXor8S, 0xe61f, i_ii) \ |
488 V(I32AtomicXor8U, 0xe620, i_ii) \ | 468 V(I32AtomicXor8U, 0xe620, i_ii) \ |
489 V(I32AtomicXor16S, 0xe621, i_ii) \ | 469 V(I32AtomicXor16S, 0xe621, i_ii) \ |
490 V(I32AtomicXor16U, 0xe622, i_ii) \ | 470 V(I32AtomicXor16U, 0xe622, i_ii) \ |
491 V(I32AtomicXor, 0xe623, i_ii) | 471 V(I32AtomicXor, 0xe623, i_ii) |
492 | 472 |
493 // All opcodes. | 473 // All opcodes. |
494 #define FOREACH_OPCODE(V) \ | 474 #define FOREACH_OPCODE(V) \ |
495 FOREACH_CONTROL_OPCODE(V) \ | 475 FOREACH_CONTROL_OPCODE(V) \ |
496 FOREACH_MISC_OPCODE(V) \ | 476 FOREACH_MISC_OPCODE(V) \ |
497 FOREACH_SIMPLE_OPCODE(V) \ | 477 FOREACH_SIMPLE_OPCODE(V) \ |
498 FOREACH_STORE_MEM_OPCODE(V) \ | 478 FOREACH_STORE_MEM_OPCODE(V) \ |
499 FOREACH_LOAD_MEM_OPCODE(V) \ | 479 FOREACH_LOAD_MEM_OPCODE(V) \ |
500 FOREACH_MISC_MEM_OPCODE(V) \ | 480 FOREACH_MISC_MEM_OPCODE(V) \ |
501 FOREACH_ASMJS_COMPAT_OPCODE(V) \ | 481 FOREACH_ASMJS_COMPAT_OPCODE(V) \ |
502 FOREACH_SIMD_0_OPERAND_OPCODE(V) \ | 482 FOREACH_SIMD_0_OPERAND_OPCODE(V) \ |
503 FOREACH_SIMD_1_OPERAND_OPCODE(V) \ | 483 FOREACH_SIMD_1_OPERAND_OPCODE(V) \ |
| 484 FOREACH_SIMD_MASK_OPERAND_OPCODE(V) \ |
504 FOREACH_ATOMIC_OPCODE(V) | 485 FOREACH_ATOMIC_OPCODE(V) |
505 | 486 |
506 // All signatures. | 487 // All signatures. |
507 #define FOREACH_SIGNATURE(V) \ | 488 #define FOREACH_SIGNATURE(V) \ |
508 FOREACH_SIMD_SIGNATURE(V) \ | 489 FOREACH_SIMD_SIGNATURE(V) \ |
509 V(i_ii, kWasmI32, kWasmI32, kWasmI32) \ | 490 V(i_ii, kWasmI32, kWasmI32, kWasmI32) \ |
510 V(i_i, kWasmI32, kWasmI32) \ | 491 V(i_i, kWasmI32, kWasmI32) \ |
511 V(i_v, kWasmI32) \ | 492 V(i_v, kWasmI32) \ |
512 V(i_ff, kWasmI32, kWasmF32, kWasmF32) \ | 493 V(i_ff, kWasmI32, kWasmF32, kWasmF32) \ |
513 V(i_f, kWasmI32, kWasmF32) \ | 494 V(i_f, kWasmI32, kWasmF32) \ |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
738 default: | 719 default: |
739 return "<unknown>"; | 720 return "<unknown>"; |
740 } | 721 } |
741 } | 722 } |
742 }; | 723 }; |
743 } // namespace wasm | 724 } // namespace wasm |
744 } // namespace internal | 725 } // namespace internal |
745 } // namespace v8 | 726 } // namespace v8 |
746 | 727 |
747 #endif // V8_WASM_OPCODES_H_ | 728 #endif // V8_WASM_OPCODES_H_ |
OLD | NEW |