summaryrefslogtreecommitdiff
path: root/src/wasm/wasm-stack.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm/wasm-stack.cpp')
-rw-r--r--src/wasm/wasm-stack.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/wasm/wasm-stack.cpp b/src/wasm/wasm-stack.cpp
index 498a53cb2..1da6e9015 100644
--- a/src/wasm/wasm-stack.cpp
+++ b/src/wasm/wasm-stack.cpp
@@ -917,6 +917,38 @@ void BinaryInstWriter::visitUnary(Unary* curr) {
o << int8_t(BinaryConsts::SIMDPrefix)
<< U32LEB(BinaryConsts::F64x2ConvertUI64x2);
break;
+ case WidenLowSVecI8x16ToVecI16x8:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I16x8WidenLowSI8x16);
+ break;
+ case WidenHighSVecI8x16ToVecI16x8:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I16x8WidenHighSI8x16);
+ break;
+ case WidenLowUVecI8x16ToVecI16x8:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I16x8WidenLowUI8x16);
+ break;
+ case WidenHighUVecI8x16ToVecI16x8:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I16x8WidenHighUI8x16);
+ break;
+ case WidenLowSVecI16x8ToVecI32x4:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I32x4WidenLowSI16x8);
+ break;
+ case WidenHighSVecI16x8ToVecI32x4:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I32x4WidenHighSI16x8);
+ break;
+ case WidenLowUVecI16x8ToVecI32x4:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I32x4WidenLowUI16x8);
+ break;
+ case WidenHighUVecI16x8ToVecI32x4:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I32x4WidenHighUI16x8);
+ break;
case InvalidUnary:
WASM_UNREACHABLE();
}
@@ -1394,6 +1426,24 @@ void BinaryInstWriter::visitBinary(Binary* curr) {
case MaxVecF64x2:
o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::F64x2Max);
break;
+
+ case NarrowSVecI16x8ToVecI8x16:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I8x16NarrowSI16x8);
+ break;
+ case NarrowUVecI16x8ToVecI8x16:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I8x16NarrowUI16x8);
+ break;
+ case NarrowSVecI32x4ToVecI16x8:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I16x8NarrowSI32x4);
+ break;
+ case NarrowUVecI32x4ToVecI16x8:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I16x8NarrowUI32x4);
+ break;
+
case InvalidBinary:
WASM_UNREACHABLE();
}