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.h391
1 files changed, 203 insertions, 188 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index 7063dc5f9..1ee9253d0 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -681,194 +681,209 @@ enum ASTNodes {
// SIMD opcodes
V128Load = 0x00,
- V128Store = 0x01,
- V128Const = 0x02,
- V8x16Shuffle = 0x03,
- I8x16Splat = 0x04,
- I8x16ExtractLaneS = 0x05,
- I8x16ExtractLaneU = 0x06,
- I8x16ReplaceLane = 0x07,
- I16x8Splat = 0x08,
- I16x8ExtractLaneS = 0x09,
- I16x8ExtractLaneU = 0x0a,
- I16x8ReplaceLane = 0x0b,
- I32x4Splat = 0x0c,
- I32x4ExtractLane = 0x0d,
- I32x4ReplaceLane = 0x0e,
- I64x2Splat = 0x0f,
- I64x2ExtractLane = 0x10,
- I64x2ReplaceLane = 0x11,
- F32x4Splat = 0x12,
- F32x4ExtractLane = 0x13,
- F32x4ReplaceLane = 0x14,
- F64x2Splat = 0x15,
- F64x2ExtractLane = 0x16,
- F64x2ReplaceLane = 0x17,
- I8x16Eq = 0x18,
- I8x16Ne = 0x19,
- I8x16LtS = 0x1a,
- I8x16LtU = 0x1b,
- I8x16GtS = 0x1c,
- I8x16GtU = 0x1d,
- I8x16LeS = 0x1e,
- I8x16LeU = 0x1f,
- I8x16GeS = 0x20,
- I8x16GeU = 0x21,
- I16x8Eq = 0x22,
- I16x8Ne = 0x23,
- I16x8LtS = 0x24,
- I16x8LtU = 0x25,
- I16x8GtS = 0x26,
- I16x8GtU = 0x27,
- I16x8LeS = 0x28,
- I16x8LeU = 0x29,
- I16x8GeS = 0x2a,
- I16x8GeU = 0x2b,
- I32x4Eq = 0x2c,
- I32x4Ne = 0x2d,
- I32x4LtS = 0x2e,
- I32x4LtU = 0x2f,
- I32x4GtS = 0x30,
- I32x4GtU = 0x31,
- I32x4LeS = 0x32,
- I32x4LeU = 0x33,
- I32x4GeS = 0x34,
- I32x4GeU = 0x35,
- F32x4Eq = 0x40,
- F32x4Ne = 0x41,
- F32x4Lt = 0x42,
- F32x4Gt = 0x43,
- F32x4Le = 0x44,
- F32x4Ge = 0x45,
- F64x2Eq = 0x46,
- F64x2Ne = 0x47,
- F64x2Lt = 0x48,
- F64x2Gt = 0x49,
- F64x2Le = 0x4a,
- F64x2Ge = 0x4b,
- V128Not = 0x4c,
- V128And = 0x4d,
- V128Or = 0x4e,
- V128Xor = 0x4f,
- V128AndNot = 0xd8,
- V128Bitselect = 0x50,
- I8x16Abs = 0xe1,
- I8x16Neg = 0x51,
- I8x16AnyTrue = 0x52,
- I8x16AllTrue = 0x53,
- I8x16Bitmask = 0xe4,
- I8x16Shl = 0x54,
- I8x16ShrS = 0x55,
- I8x16ShrU = 0x56,
- I8x16Add = 0x57,
- I8x16AddSatS = 0x58,
- I8x16AddSatU = 0x59,
- I8x16Sub = 0x5a,
- I8x16SubSatS = 0x5b,
- I8x16SubSatU = 0x5c,
- I8x16Mul = 0x5d,
- I8x16MinS = 0x5e,
- I8x16MinU = 0x5f,
- I8x16MaxS = 0x60,
- I8x16MaxU = 0x61,
- I8x16AvgrU = 0xd9,
- I16x8Abs = 0xe2,
- I16x8Neg = 0x62,
- I16x8AnyTrue = 0x63,
- I16x8AllTrue = 0x64,
- I16x8Bitmask = 0xe5,
- I16x8Shl = 0x65,
- I16x8ShrS = 0x66,
- I16x8ShrU = 0x67,
- I16x8Add = 0x68,
- I16x8AddSatS = 0x69,
- I16x8AddSatU = 0x6a,
- I16x8Sub = 0x6b,
- I16x8SubSatS = 0x6c,
- I16x8SubSatU = 0x6d,
- I16x8Mul = 0x6e,
- I16x8MinS = 0x6f,
- I16x8MinU = 0x70,
- I16x8MaxS = 0x71,
- I16x8MaxU = 0x72,
- I16x8AvgrU = 0xda,
- I32x4Abs = 0xe3,
- I32x4Neg = 0x73,
- I32x4AnyTrue = 0x74,
- I32x4AllTrue = 0x75,
- I32x4Bitmask = 0xe6,
- I32x4Shl = 0x76,
- I32x4ShrS = 0x77,
- I32x4ShrU = 0x78,
- I32x4Add = 0x79,
- I32x4Sub = 0x7c,
- I32x4Mul = 0x7f,
- I32x4MinS = 0x80,
- I32x4MinU = 0x81,
- I32x4MaxS = 0x82,
- I32x4MaxU = 0x83,
- I32x4DotSVecI16x8 = 0xdb,
- I64x2Neg = 0x84,
- I64x2AnyTrue = 0x85,
- I64x2AllTrue = 0x86,
- I64x2Shl = 0x87,
- I64x2ShrS = 0x88,
- I64x2ShrU = 0x89,
- I64x2Add = 0x8a,
- I64x2Sub = 0x8d,
- F32x4Abs = 0x95,
- F32x4Neg = 0x96,
- F32x4Sqrt = 0x97,
- F32x4QFMA = 0x98,
- F32x4QFMS = 0x99,
- F32x4Add = 0x9a,
- F32x4Sub = 0x9b,
- F32x4Mul = 0x9c,
- F32x4Div = 0x9d,
- F32x4Min = 0x9e,
- F32x4Max = 0x9f,
- F64x2Abs = 0xa0,
- F64x2Neg = 0xa1,
- F64x2Sqrt = 0xa2,
- F64x2QFMA = 0xa3,
- F64x2QFMS = 0xa4,
- F64x2Add = 0xa5,
- F64x2Sub = 0xa6,
- F64x2Mul = 0xa7,
- F64x2Div = 0xa8,
- F64x2Min = 0xa9,
- F64x2Max = 0xaa,
- I32x4TruncSatSF32x4 = 0xab,
- I32x4TruncSatUF32x4 = 0xac,
- I64x2TruncSatSF64x2 = 0xad,
- I64x2TruncSatUF64x2 = 0xae,
- F32x4ConvertSI32x4 = 0xaf,
- F32x4ConvertUI32x4 = 0xb0,
- F64x2ConvertSI64x2 = 0xb1,
- F64x2ConvertUI64x2 = 0xb2,
- V8x16LoadSplat = 0xc2,
- V16x8LoadSplat = 0xc3,
- V32x4LoadSplat = 0xc4,
- V64x2LoadSplat = 0xc5,
- I8x16NarrowSI16x8 = 0xc6,
- I8x16NarrowUI16x8 = 0xc7,
- I16x8NarrowSI32x4 = 0xc8,
- I16x8NarrowUI32x4 = 0xc9,
- I16x8WidenLowSI8x16 = 0xca,
- I16x8WidenHighSI8x16 = 0xcb,
- I16x8WidenLowUI8x16 = 0xcc,
- I16x8WidenHighUI8x16 = 0xcd,
- I32x4WidenLowSI16x8 = 0xce,
- I32x4WidenHighSI16x8 = 0xcf,
- I32x4WidenLowUI16x8 = 0xd0,
- I32x4WidenHighUI16x8 = 0xd1,
- I16x8LoadExtSVec8x8 = 0xd2,
- I16x8LoadExtUVec8x8 = 0xd3,
- I32x4LoadExtSVec16x4 = 0xd4,
- I32x4LoadExtUVec16x4 = 0xd5,
- I64x2LoadExtSVec32x2 = 0xd6,
- I64x2LoadExtUVec32x2 = 0xd7,
- V8x16Swizzle = 0xc0,
+ I16x8LoadExtSVec8x8 = 0x01,
+ I16x8LoadExtUVec8x8 = 0x02,
+ I32x4LoadExtSVec16x4 = 0x03,
+ I32x4LoadExtUVec16x4 = 0x04,
+ I64x2LoadExtSVec32x2 = 0x05,
+ I64x2LoadExtUVec32x2 = 0x06,
+ V8x16LoadSplat = 0x07,
+ V16x8LoadSplat = 0x08,
+ V32x4LoadSplat = 0x09,
+ V64x2LoadSplat = 0x0a,
+ V128Store = 0x0b,
+
+ V128Const = 0x0c,
+ V8x16Shuffle = 0x0d,
+ V8x16Swizzle = 0x0e,
+
+ I8x16Splat = 0x0f,
+ I16x8Splat = 0x10,
+ I32x4Splat = 0x11,
+ I64x2Splat = 0x12,
+ F32x4Splat = 0x13,
+ F64x2Splat = 0x14,
+
+ I8x16ExtractLaneS = 0x15,
+ I8x16ExtractLaneU = 0x16,
+ I8x16ReplaceLane = 0x17,
+ I16x8ExtractLaneS = 0x18,
+ I16x8ExtractLaneU = 0x19,
+ I16x8ReplaceLane = 0x1a,
+ I32x4ExtractLane = 0x1b,
+ I32x4ReplaceLane = 0x1c,
+ I64x2ExtractLane = 0x1d,
+ I64x2ReplaceLane = 0x1e,
+ F32x4ExtractLane = 0x1f,
+ F32x4ReplaceLane = 0x20,
+ F64x2ExtractLane = 0x21,
+ F64x2ReplaceLane = 0x22,
+
+ I8x16Eq = 0x23,
+ I8x16Ne = 0x24,
+ I8x16LtS = 0x25,
+ I8x16LtU = 0x26,
+ I8x16GtS = 0x27,
+ I8x16GtU = 0x28,
+ I8x16LeS = 0x29,
+ I8x16LeU = 0x2a,
+ I8x16GeS = 0x2b,
+ I8x16GeU = 0x2c,
+ I16x8Eq = 0x2d,
+ I16x8Ne = 0x2e,
+ I16x8LtS = 0x2f,
+ I16x8LtU = 0x30,
+ I16x8GtS = 0x31,
+ I16x8GtU = 0x32,
+ I16x8LeS = 0x33,
+ I16x8LeU = 0x34,
+ I16x8GeS = 0x35,
+ I16x8GeU = 0x36,
+ I32x4Eq = 0x37,
+ I32x4Ne = 0x38,
+ I32x4LtS = 0x39,
+ I32x4LtU = 0x3a,
+ I32x4GtS = 0x3b,
+ I32x4GtU = 0x3c,
+ I32x4LeS = 0x3d,
+ I32x4LeU = 0x3e,
+ I32x4GeS = 0x3f,
+ I32x4GeU = 0x40,
+ F32x4Eq = 0x41,
+ F32x4Ne = 0x42,
+ F32x4Lt = 0x43,
+ F32x4Gt = 0x44,
+ F32x4Le = 0x45,
+ F32x4Ge = 0x46,
+ F64x2Eq = 0x47,
+ F64x2Ne = 0x48,
+ F64x2Lt = 0x49,
+ F64x2Gt = 0x4a,
+ F64x2Le = 0x4b,
+ F64x2Ge = 0x4c,
+
+ V128Not = 0x4d,
+ V128And = 0x4e,
+ V128AndNot = 0x4f,
+ V128Or = 0x50,
+ V128Xor = 0x51,
+ V128Bitselect = 0x52,
+
+ I8x16Abs = 0x60,
+ I8x16Neg = 0x61,
+ I8x16AnyTrue = 0x62,
+ I8x16AllTrue = 0x63,
+ I8x16Bitmask = 0x64,
+ I8x16NarrowSI16x8 = 0x65,
+ I8x16NarrowUI16x8 = 0x66,
+ I8x16Shl = 0x6b,
+ I8x16ShrS = 0x6c,
+ I8x16ShrU = 0x6d,
+ I8x16Add = 0x6e,
+ I8x16AddSatS = 0x6f,
+ I8x16AddSatU = 0x70,
+ I8x16Sub = 0x71,
+ I8x16SubSatS = 0x72,
+ I8x16SubSatU = 0x73,
+ I8x16Mul = 0x75,
+ I8x16MinS = 0x76,
+ I8x16MinU = 0x77,
+ I8x16MaxS = 0x78,
+ I8x16MaxU = 0x79,
+ I8x16AvgrU = 0x7b,
+
+ I16x8Abs = 0x80,
+ I16x8Neg = 0x81,
+ I16x8AnyTrue = 0x82,
+ I16x8AllTrue = 0x83,
+ I16x8Bitmask = 0x84,
+ I16x8NarrowSI32x4 = 0x85,
+ I16x8NarrowUI32x4 = 0x86,
+ I16x8WidenLowSI8x16 = 0x87,
+ I16x8WidenHighSI8x16 = 0x88,
+ I16x8WidenLowUI8x16 = 0x89,
+ I16x8WidenHighUI8x16 = 0x8a,
+ I16x8Shl = 0x8b,
+ I16x8ShrS = 0x8c,
+ I16x8ShrU = 0x8d,
+ I16x8Add = 0x8e,
+ I16x8AddSatS = 0x8f,
+ I16x8AddSatU = 0x90,
+ I16x8Sub = 0x91,
+ I16x8SubSatS = 0x92,
+ I16x8SubSatU = 0x93,
+ I16x8Mul = 0x95,
+ I16x8MinS = 0x96,
+ I16x8MinU = 0x97,
+ I16x8MaxS = 0x98,
+ I16x8MaxU = 0x99,
+ I16x8AvgrU = 0x9b,
+
+ I32x4Abs = 0xa0,
+ I32x4Neg = 0xa1,
+ I32x4AnyTrue = 0xa2,
+ I32x4AllTrue = 0xa3,
+ I32x4Bitmask = 0xa4,
+ I32x4WidenLowSI16x8 = 0xa7,
+ I32x4WidenHighSI16x8 = 0xa8,
+ I32x4WidenLowUI16x8 = 0xa9,
+ I32x4WidenHighUI16x8 = 0xaa,
+ I32x4Shl = 0xab,
+ I32x4ShrS = 0xac,
+ I32x4ShrU = 0xad,
+ I32x4Add = 0xae,
+ I32x4Sub = 0xb1,
+ I32x4DotSVecI16x8 = 0xb4,
+ I32x4Mul = 0xb5,
+ I32x4MinS = 0xb6,
+ I32x4MinU = 0xb7,
+ I32x4MaxS = 0xb8,
+ I32x4MaxU = 0xb9,
+
+ I64x2Neg = 0xc1,
+ I64x2AnyTrue = 0xc2,
+ I64x2AllTrue = 0xc3,
+ I64x2Shl = 0xcb,
+ I64x2ShrS = 0xcc,
+ I64x2ShrU = 0xcd,
+ I64x2Add = 0xce,
+ I64x2Sub = 0xd1,
+ // TODO: i64x2.mul
+
+ F32x4Abs = 0xe0,
+ F32x4Neg = 0xe1,
+ F32x4Sqrt = 0xe3,
+ F32x4Add = 0xe4,
+ F32x4Sub = 0xe5,
+ F32x4Mul = 0xe6,
+ F32x4Div = 0xe7,
+ F32x4Min = 0xe8,
+ F32x4Max = 0xe9,
+
+ F64x2Abs = 0xec,
+ F64x2Neg = 0xed,
+ F64x2Sqrt = 0xef,
+ F64x2Add = 0xf0,
+ F64x2Sub = 0xf1,
+ F64x2Mul = 0xf2,
+ F64x2Div = 0xf3,
+ F64x2Min = 0xf4,
+ F64x2Max = 0xf5,
+
+ I32x4TruncSatSF32x4 = 0xf8,
+ I32x4TruncSatUF32x4 = 0xf9,
+ F32x4ConvertSI32x4 = 0xfa,
+ F32x4ConvertUI32x4 = 0xfb,
+
+ F32x4QFMA = 0xfc,
+ F32x4QFMS = 0xfd,
+ F64x2QFMA = 0xfe,
+ F64x2QFMS = 0xff,
+
+ I64x2TruncSatSF64x2 = 0x0100,
+ I64x2TruncSatUF64x2 = 0x0101,
+ F64x2ConvertSI64x2 = 0x0102,
+ F64x2ConvertUI64x2 = 0x0103,
// bulk memory opcodes