summaryrefslogtreecommitdiff
path: root/src/wasm-binary.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-binary.h')
-rw-r--r--src/wasm-binary.h178
1 files changed, 86 insertions, 92 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index ec89bb1da..804df5811 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -803,7 +803,6 @@ enum ASTNodes {
I32x4LeU = 0x3e,
I32x4GeS = 0x3f,
I32x4GeU = 0x40,
- I64x2Eq = 0xc0,
F32x4Eq = 0x41,
F32x4Ne = 0x42,
F32x4Lt = 0x43,
@@ -823,28 +822,33 @@ enum ASTNodes {
V128Or = 0x50,
V128Xor = 0x51,
V128Bitselect = 0x52,
-
- V8x16SignSelect = 0x7d,
- V16x8SignSelect = 0x7e,
- V32x4SignSelect = 0x7f,
- V64x2SignSelect = 0x94,
-
- V128Load8Lane = 0x58,
- V128Load16Lane = 0x59,
- V128Load32Lane = 0x5a,
- V128Load64Lane = 0x5b,
- V128Store8Lane = 0x5c,
- V128Store16Lane = 0x5d,
- V128Store32Lane = 0x5e,
- V128Store64Lane = 0x5f,
+ V128AnyTrue = 0x53,
+
+ V128Load8Lane = 0x54,
+ V128Load16Lane = 0x55,
+ V128Load32Lane = 0x56,
+ V128Load64Lane = 0x57,
+ V128Store8Lane = 0x58,
+ V128Store16Lane = 0x59,
+ V128Store32Lane = 0x5a,
+ V128Store64Lane = 0x5b,
+ V128Load32Zero = 0x5c,
+ V128Load64Zero = 0x5d,
+
+ F32x4DemoteZeroF64x2 = 0x5e,
+ F64x2PromoteLowF32x4 = 0x5f,
I8x16Abs = 0x60,
I8x16Neg = 0x61,
- I8x16AnyTrue = 0x62,
+ I8x16Popcnt = 0x62,
I8x16AllTrue = 0x63,
I8x16Bitmask = 0x64,
I8x16NarrowSI16x8 = 0x65,
I8x16NarrowUI16x8 = 0x66,
+ F32x4Ceil = 0x67,
+ F32x4Floor = 0x68,
+ F32x4Trunc = 0x69,
+ F32x4Nearest = 0x6a,
I8x16Shl = 0x6b,
I8x16ShrS = 0x6c,
I8x16ShrU = 0x6d,
@@ -854,26 +858,30 @@ enum ASTNodes {
I8x16Sub = 0x71,
I8x16SubSatS = 0x72,
I8x16SubSatU = 0x73,
- I8x16Mul = 0x75,
+ F64x2Ceil = 0x74,
+ F64x2Floor = 0x75,
I8x16MinS = 0x76,
I8x16MinU = 0x77,
I8x16MaxS = 0x78,
I8x16MaxU = 0x79,
+ F64x2Trunc = 0x7a,
I8x16AvgrU = 0x7b,
-
- I8x16Popcnt = 0x7c,
+ I16x8ExtAddPairWiseSI8x16 = 0x7c,
+ I16x8ExtAddPairWiseUI8x16 = 0x7d,
+ I32x4ExtAddPairWiseSI16x8 = 0x7e,
+ I32x4ExtAddPairWiseUI16x8 = 0x7f,
I16x8Abs = 0x80,
I16x8Neg = 0x81,
- I16x8AnyTrue = 0x82,
+ I16x8Q15MulrSatS = 0x82,
I16x8AllTrue = 0x83,
I16x8Bitmask = 0x84,
I16x8NarrowSI32x4 = 0x85,
I16x8NarrowUI32x4 = 0x86,
- I16x8WidenLowSI8x16 = 0x87,
- I16x8WidenHighSI8x16 = 0x88,
- I16x8WidenLowUI8x16 = 0x89,
- I16x8WidenHighUI8x16 = 0x8a,
+ I16x8ExtendLowSI8x16 = 0x87,
+ I16x8ExtendHighSI8x16 = 0x88,
+ I16x8ExtendLowUI8x16 = 0x89,
+ I16x8ExtendHighUI8x16 = 0x8a,
I16x8Shl = 0x8b,
I16x8ShrS = 0x8c,
I16x8ShrU = 0x8d,
@@ -883,50 +891,88 @@ enum ASTNodes {
I16x8Sub = 0x91,
I16x8SubSatS = 0x92,
I16x8SubSatU = 0x93,
+ F64x2Nearest = 0x94,
I16x8Mul = 0x95,
I16x8MinS = 0x96,
I16x8MinU = 0x97,
I16x8MaxS = 0x98,
I16x8MaxU = 0x99,
+ // 0x9a unused
I16x8AvgrU = 0x9b,
- I16x8Q15MulrSatS = 0x9c,
+ I16x8ExtMulLowSI8x16 = 0x9c,
+ I16x8ExtMulHighSI8x16 = 0x9d,
+ I16x8ExtMulLowUI8x16 = 0x9e,
+ I16x8ExtMulHighUI8x16 = 0x9f,
I32x4Abs = 0xa0,
I32x4Neg = 0xa1,
- I32x4AnyTrue = 0xa2,
+ // 0xa2 unused
I32x4AllTrue = 0xa3,
I32x4Bitmask = 0xa4,
- I32x4WidenLowSI16x8 = 0xa7,
- I32x4WidenHighSI16x8 = 0xa8,
- I32x4WidenLowUI16x8 = 0xa9,
- I32x4WidenHighUI16x8 = 0xaa,
+ // 0xa5 unused
+ // 0xa6 unused
+ I32x4ExtendLowSI16x8 = 0xa7,
+ I32x4ExtendHighSI16x8 = 0xa8,
+ I32x4ExtendLowUI16x8 = 0xa9,
+ I32x4ExtendHighUI16x8 = 0xaa,
I32x4Shl = 0xab,
I32x4ShrS = 0xac,
I32x4ShrU = 0xad,
I32x4Add = 0xae,
+ // 0xaf unused
+ // 0xb0 unused
I32x4Sub = 0xb1,
+ // 0xb2 unused
+ // 0xb3 unused
+ // 0xb4 unused
I32x4Mul = 0xb5,
I32x4MinS = 0xb6,
I32x4MinU = 0xb7,
I32x4MaxS = 0xb8,
I32x4MaxU = 0xb9,
I32x4DotSVecI16x8 = 0xba,
+ // 0xbb unused
+ I32x4ExtMulLowSI16x8 = 0xbc,
+ I32x4ExtMulHighSI16x8 = 0xbd,
+ I32x4ExtMulLowUI16x8 = 0xbe,
+ I32x4ExtMulHighUI16x8 = 0xbf,
- I64x2Bitmask = 0xc4,
- I64x2WidenLowSI32x4 = 0xc7,
- I64x2WidenHighSI32x4 = 0xc8,
- I64x2WidenLowUI32x4 = 0xc9,
- I64x2WidenHighUI32x4 = 0xca,
+ I64x2Abs = 0xc0,
I64x2Neg = 0xc1,
+ // 0xc2 unused
+ I64x2AllTrue = 0xc3,
+ I64x2Bitmask = 0xc4,
+ // 0xc5 unused
+ // 0xc6 unused
+ I64x2ExtendLowSI32x4 = 0xc7,
+ I64x2ExtendHighSI32x4 = 0xc8,
+ I64x2ExtendLowUI32x4 = 0xc9,
+ I64x2ExtendHighUI32x4 = 0xca,
I64x2Shl = 0xcb,
I64x2ShrS = 0xcc,
I64x2ShrU = 0xcd,
I64x2Add = 0xce,
+ // 0xcf unused
+ // 0xd0 unused
I64x2Sub = 0xd1,
+ // 0xd2 unused
+ // 0xd3 unused
+ // 0xd4 unused
I64x2Mul = 0xd5,
+ I64x2Eq = 0xd6,
+ I64x2Ne = 0xd7,
+ I64x2LtS = 0xd8,
+ I64x2GtS = 0xd9,
+ I64x2LeS = 0xda,
+ I64x2GeS = 0xdb,
+ I64x2ExtMulLowSI32x4 = 0xdc,
+ I64x2ExtMulHighSI32x4 = 0xdd,
+ I64x2ExtMulLowUI32x4 = 0xde,
+ I64x2ExtMulHighUI32x4 = 0xdf,
F32x4Abs = 0xe0,
F32x4Neg = 0xe1,
+ // 0xe2 unused
F32x4Sqrt = 0xe3,
F32x4Add = 0xe4,
F32x4Sub = 0xe5,
@@ -937,17 +983,9 @@ enum ASTNodes {
F32x4PMin = 0xea,
F32x4PMax = 0xeb,
- F32x4Ceil = 0xd8,
- F32x4Floor = 0xd9,
- F32x4Trunc = 0xda,
- F32x4Nearest = 0xdb,
- F64x2Ceil = 0xdc,
- F64x2Floor = 0xdd,
- F64x2Trunc = 0xde,
- F64x2Nearest = 0xdf,
-
F64x2Abs = 0xec,
F64x2Neg = 0xed,
+ // 0xee unused
F64x2Sqrt = 0xef,
F64x2Add = 0xf0,
F64x2Sub = 0xf1,
@@ -958,56 +996,14 @@ enum ASTNodes {
F64x2PMin = 0xf6,
F64x2PMax = 0xf7,
- I16x8ExtAddPairWiseSI8x16 = 0xc2,
- I16x8ExtAddPairWiseUI8x16 = 0xc3,
- I32x4ExtAddPairWiseSI16x8 = 0xa5,
- I32x4ExtAddPairWiseUI16x8 = 0xa6,
-
I32x4TruncSatSF32x4 = 0xf8,
I32x4TruncSatUF32x4 = 0xf9,
F32x4ConvertSI32x4 = 0xfa,
F32x4ConvertUI32x4 = 0xfb,
-
- V128Load32Zero = 0xfc,
- V128Load64Zero = 0xfd,
-
- F32x4QFMA = 0xb4,
- F32x4QFMS = 0xd4,
- F64x2QFMA = 0xfe,
- F64x2QFMS = 0xff,
-
- I64x2TruncSatSF64x2 = 0x0100,
- I64x2TruncSatUF64x2 = 0x0101,
- F64x2ConvertSI64x2 = 0x0102,
- F64x2ConvertUI64x2 = 0x0103,
-
- I16x8ExtMulLowSI8x16 = 0x9a,
- I16x8ExtMulHighSI8x16 = 0x9d,
- I16x8ExtMulLowUI8x16 = 0x9e,
- I16x8ExtMulHighUI8x16 = 0x9f,
- I32x4ExtMulLowSI16x8 = 0xbb,
- I32x4ExtMulHighSI16x8 = 0xbd,
- I32x4ExtMulLowUI16x8 = 0xbe,
- I32x4ExtMulHighUI16x8 = 0xbf,
- I64x2ExtMulLowSI32x4 = 0xd2,
- I64x2ExtMulHighSI32x4 = 0xd3,
- I64x2ExtMulLowUI32x4 = 0xd6,
- I64x2ExtMulHighUI32x4 = 0xd7,
-
- F64x2ConvertLowSI32x4 = 0x53,
- F64x2ConvertLowUI32x4 = 0x54,
- I32x4TruncSatZeroSF64x2 = 0x55,
- I32x4TruncSatZeroUF64x2 = 0x56,
- F32x4DemoteZeroF64x2 = 0x57,
- F64x2PromoteLowF32x4 = 0x69,
-
- I32x4WidenSI8x16 = 0x67,
- I32x4WidenUI8x16 = 0x68,
-
- // prefetch opcodes
-
- PrefetchT = 0xc5,
- PrefetchNT = 0xc6,
+ I32x4TruncSatZeroSF64x2 = 0xfc,
+ I32x4TruncSatZeroUF64x2 = 0xfd,
+ F64x2ConvertLowSI32x4 = 0xfe,
+ F64x2ConvertLowUI32x4 = 0xff,
// bulk memory opcodes
@@ -1595,8 +1591,6 @@ public:
bool maybeVisitSIMDShift(Expression*& out, uint32_t code);
bool maybeVisitSIMDLoad(Expression*& out, uint32_t code);
bool maybeVisitSIMDLoadStoreLane(Expression*& out, uint32_t code);
- bool maybeVisitSIMDWiden(Expression*& out, uint32_t code);
- bool maybeVisitPrefetch(Expression*& out, uint32_t code);
bool maybeVisitMemoryInit(Expression*& out, uint32_t code);
bool maybeVisitDataDrop(Expression*& out, uint32_t code);
bool maybeVisitMemoryCopy(Expression*& out, uint32_t code);