| 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_MACRO_GEN_H_ | 5 #ifndef V8_WASM_MACRO_GEN_H_ |
| 6 #define V8_WASM_MACRO_GEN_H_ | 6 #define V8_WASM_MACRO_GEN_H_ |
| 7 | 7 |
| 8 #include "src/wasm/wasm-opcodes.h" | 8 #include "src/wasm/wasm-opcodes.h" |
| 9 | 9 |
| 10 #include "src/zone/zone-containers.h" | 10 #include "src/zone/zone-containers.h" |
| (...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 614 | 614 |
| 615 //------------------------------------------------------------------------------ | 615 //------------------------------------------------------------------------------ |
| 616 // Memory Operations. | 616 // Memory Operations. |
| 617 //------------------------------------------------------------------------------ | 617 //------------------------------------------------------------------------------ |
| 618 #define WASM_GROW_MEMORY(x) x, kExprGrowMemory, 0 | 618 #define WASM_GROW_MEMORY(x) x, kExprGrowMemory, 0 |
| 619 #define WASM_MEMORY_SIZE kExprMemorySize, 0 | 619 #define WASM_MEMORY_SIZE kExprMemorySize, 0 |
| 620 | 620 |
| 621 //------------------------------------------------------------------------------ | 621 //------------------------------------------------------------------------------ |
| 622 // Simd Operations. | 622 // Simd Operations. |
| 623 //------------------------------------------------------------------------------ | 623 //------------------------------------------------------------------------------ |
| 624 #define WASM_SIMD_F32x4_SPLAT(x) x, kSimdPrefix, kExprF32x4Splat & 0xff | 624 // TODO(bbudge) Migrate these into tests. |
| 625 #define WASM_SIMD_F32x4_EXTRACT_LANE(lane, x) \ | 625 #define WASM_SIMD_F32x4_SPLAT(x) \ |
| 626 x, kSimdPrefix, kExprF32x4ExtractLane & 0xff, static_cast<byte>(lane) | 626 x, kSimdPrefix, static_cast<byte>(kExprF32x4Splat) |
| 627 #define WASM_SIMD_F32x4_REPLACE_LANE(lane, x, y) \ | 627 #define WASM_SIMD_F32x4_EXTRACT_LANE(lane, x) \ |
| 628 x, y, kSimdPrefix, kExprF32x4ReplaceLane & 0xff, static_cast<byte>(lane) | 628 x, kSimdPrefix, static_cast<byte>(kExprF32x4ExtractLane), \ |
| 629 #define WASM_SIMD_F32x4_FROM_I32x4(x) \ | 629 static_cast<byte>(lane) |
| 630 x, kSimdPrefix, kExprF32x4SConvertI32x4 & 0xff | 630 #define WASM_SIMD_F32x4_REPLACE_LANE(lane, x, y) \ |
| 631 #define WASM_SIMD_F32x4_FROM_U32x4(x) \ | 631 x, y, kSimdPrefix, static_cast<byte>(kExprF32x4ReplaceLane), \ |
| 632 x, kSimdPrefix, kExprF32x4UConvertI32x4 & 0xff | 632 static_cast<byte>(lane) |
| 633 #define WASM_SIMD_F32x4_ADD(x, y) x, y, kSimdPrefix, kExprF32x4Add & 0xff | 633 #define WASM_SIMD_F32x4_ADD(x, y) \ |
| 634 #define WASM_SIMD_F32x4_SUB(x, y) x, y, kSimdPrefix, kExprF32x4Sub & 0xff | 634 x, y, kSimdPrefix, static_cast<byte>(kExprF32x4Add) |
| 635 #define WASM_SIMD_F32x4_SUB(x, y) \ |
| 636 x, y, kSimdPrefix, static_cast<byte>(kExprF32x4Sub) |
| 635 | 637 |
| 636 #define WASM_SIMD_I32x4_SPLAT(x) x, kSimdPrefix, kExprI32x4Splat & 0xff | 638 #define WASM_SIMD_I32x4_SPLAT(x) \ |
| 637 #define WASM_SIMD_I32x4_EXTRACT_LANE(lane, x) \ | 639 x, kSimdPrefix, static_cast<byte>(kExprI32x4Splat) |
| 638 x, kSimdPrefix, kExprI32x4ExtractLane & 0xff, static_cast<byte>(lane) | 640 #define WASM_SIMD_I32x4_EXTRACT_LANE(lane, x) \ |
| 639 #define WASM_SIMD_I32x4_REPLACE_LANE(lane, x, y) \ | 641 x, kSimdPrefix, static_cast<byte>(kExprI32x4ExtractLane), \ |
| 640 x, y, kSimdPrefix, kExprI32x4ReplaceLane & 0xff, static_cast<byte>(lane) | 642 static_cast<byte>(lane) |
| 641 #define WASM_SIMD_I32x4_FROM_F32x4(x) \ | 643 #define WASM_SIMD_I32x4_REPLACE_LANE(lane, x, y) \ |
| 642 x, kSimdPrefix, kExprI32x4SConvertF32x4 & 0xff | 644 x, y, kSimdPrefix, static_cast<byte>(kExprI32x4ReplaceLane), \ |
| 643 #define WASM_SIMD_U32x4_FROM_F32x4(x) \ | 645 static_cast<byte>(lane) |
| 644 x, kSimdPrefix, kExprI32x4UConvertF32x4 & 0xff | 646 #define WASM_SIMD_I32x4_ADD(x, y) \ |
| 645 #define WASM_SIMD_S32x4_SELECT(x, y, z) \ | 647 x, y, kSimdPrefix, static_cast<byte>(kExprI32x4Add) |
| 646 x, y, z, kSimdPrefix, kExprS32x4Select & 0xff | 648 #define WASM_SIMD_I32x4_SUB(x, y) \ |
| 647 #define WASM_SIMD_I32x4_ADD(x, y) x, y, kSimdPrefix, kExprI32x4Add & 0xff | 649 x, y, kSimdPrefix, static_cast<byte>(kExprI32x4Sub) |
| 648 #define WASM_SIMD_I32x4_SUB(x, y) x, y, kSimdPrefix, kExprI32x4Sub & 0xff | |
| 649 | |
| 650 #define WASM_SIMD_I16x8_SPLAT(x) x, kSimdPrefix, kExprI16x8Splat & 0xff | |
| 651 #define WASM_SIMD_I16x8_EXTRACT_LANE(lane, x) \ | |
| 652 x, kSimdPrefix, kExprI16x8ExtractLane & 0xff, static_cast<byte>(lane) | |
| 653 #define WASM_SIMD_I16x8_REPLACE_LANE(lane, x, y) \ | |
| 654 x, y, kSimdPrefix, kExprI16x8ReplaceLane & 0xff, static_cast<byte>(lane) | |
| 655 | |
| 656 #define WASM_SIMD_I8x16_SPLAT(x) x, kSimdPrefix, kExprI8x16Splat & 0xff | |
| 657 #define WASM_SIMD_I8x16_EXTRACT_LANE(lane, x) \ | |
| 658 x, kSimdPrefix, kExprI8x16ExtractLane & 0xff, static_cast<byte>(lane) | |
| 659 #define WASM_SIMD_I8x16_REPLACE_LANE(lane, x, y) \ | |
| 660 x, y, kSimdPrefix, kExprI8x16ReplaceLane & 0xff, static_cast<byte>(lane) | |
| 661 | 650 |
| 662 #define SIG_ENTRY_v_v kWasmFunctionTypeForm, 0, 0 | 651 #define SIG_ENTRY_v_v kWasmFunctionTypeForm, 0, 0 |
| 663 #define SIZEOF_SIG_ENTRY_v_v 3 | 652 #define SIZEOF_SIG_ENTRY_v_v 3 |
| 664 | 653 |
| 665 #define SIG_ENTRY_v_x(a) kWasmFunctionTypeForm, 1, a, 0 | 654 #define SIG_ENTRY_v_x(a) kWasmFunctionTypeForm, 1, a, 0 |
| 666 #define SIG_ENTRY_v_xx(a, b) kWasmFunctionTypeForm, 2, a, b, 0 | 655 #define SIG_ENTRY_v_xx(a, b) kWasmFunctionTypeForm, 2, a, b, 0 |
| 667 #define SIG_ENTRY_v_xxx(a, b, c) kWasmFunctionTypeForm, 3, a, b, c, 0 | 656 #define SIG_ENTRY_v_xxx(a, b, c) kWasmFunctionTypeForm, 3, a, b, c, 0 |
| 668 #define SIZEOF_SIG_ENTRY_v_x 4 | 657 #define SIZEOF_SIG_ENTRY_v_x 4 |
| 669 #define SIZEOF_SIG_ENTRY_v_xx 5 | 658 #define SIZEOF_SIG_ENTRY_v_xx 5 |
| 670 #define SIZEOF_SIG_ENTRY_v_xxx 6 | 659 #define SIZEOF_SIG_ENTRY_v_xxx 6 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 681 #define WASM_BRV(depth, val) val, kExprBr, static_cast<byte>(depth) | 670 #define WASM_BRV(depth, val) val, kExprBr, static_cast<byte>(depth) |
| 682 #define WASM_BRV_IF(depth, val, cond) \ | 671 #define WASM_BRV_IF(depth, val, cond) \ |
| 683 val, cond, kExprBrIf, static_cast<byte>(depth) | 672 val, cond, kExprBrIf, static_cast<byte>(depth) |
| 684 #define WASM_BRV_IFD(depth, val, cond) \ | 673 #define WASM_BRV_IFD(depth, val, cond) \ |
| 685 val, cond, kExprBrIf, static_cast<byte>(depth), kExprDrop | 674 val, cond, kExprBrIf, static_cast<byte>(depth), kExprDrop |
| 686 #define WASM_IFB(cond, ...) cond, kExprIf, kLocalVoid, __VA_ARGS__, kExprEnd | 675 #define WASM_IFB(cond, ...) cond, kExprIf, kLocalVoid, __VA_ARGS__, kExprEnd |
| 687 #define WASM_BR_TABLEV(val, key, count, ...) \ | 676 #define WASM_BR_TABLEV(val, key, count, ...) \ |
| 688 val, key, kExprBrTable, U32V_1(count), __VA_ARGS__ | 677 val, key, kExprBrTable, U32V_1(count), __VA_ARGS__ |
| 689 | 678 |
| 690 #endif // V8_WASM_MACRO_GEN_H_ | 679 #endif // V8_WASM_MACRO_GEN_H_ |
| OLD | NEW |