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.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/wasm/wasm-stack.cpp b/src/wasm/wasm-stack.cpp
index f5be5d2c5..59398839e 100644
--- a/src/wasm/wasm-stack.cpp
+++ b/src/wasm/wasm-stack.cpp
@@ -546,6 +546,30 @@ void BinaryInstWriter::visitSIMDTernary(SIMDTernary* curr) {
case Bitselect:
o << U32LEB(BinaryConsts::V128Bitselect);
break;
+ case LaneselectI8x16:
+ o << U32LEB(BinaryConsts::I8x16Laneselect);
+ break;
+ case LaneselectI16x8:
+ o << U32LEB(BinaryConsts::I16x8Laneselect);
+ break;
+ case LaneselectI32x4:
+ o << U32LEB(BinaryConsts::I32x4Laneselect);
+ break;
+ case LaneselectI64x2:
+ o << U32LEB(BinaryConsts::I64x2Laneselect);
+ break;
+ case RelaxedFmaVecF32x4:
+ o << U32LEB(BinaryConsts::F32x4RelaxedFma);
+ break;
+ case RelaxedFmsVecF32x4:
+ o << U32LEB(BinaryConsts::F32x4RelaxedFms);
+ break;
+ case RelaxedFmaVecF64x2:
+ o << U32LEB(BinaryConsts::F64x2RelaxedFma);
+ break;
+ case RelaxedFmsVecF64x2:
+ o << U32LEB(BinaryConsts::F64x2RelaxedFms);
+ break;
}
}
@@ -1153,6 +1177,22 @@ void BinaryInstWriter::visitUnary(Unary* curr) {
o << int8_t(BinaryConsts::SIMDPrefix)
<< U32LEB(BinaryConsts::F64x2PromoteLowF32x4);
break;
+ case RelaxedTruncSVecF32x4ToVecI32x4:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I32x4RelaxedTruncF32x4S);
+ break;
+ case RelaxedTruncUVecF32x4ToVecI32x4:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I32x4RelaxedTruncF32x4U);
+ break;
+ case RelaxedTruncZeroSVecF64x2ToVecI32x4:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I32x4RelaxedTruncF64x2SZero);
+ break;
+ case RelaxedTruncZeroUVecF64x2ToVecI32x4:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I32x4RelaxedTruncF64x2UZero);
+ break;
case InvalidUnary:
WASM_UNREACHABLE("invalid unary op");
}
@@ -1783,6 +1823,27 @@ void BinaryInstWriter::visitBinary(Binary* curr) {
<< U32LEB(BinaryConsts::I8x16Swizzle);
break;
+ case RelaxedSwizzleVec8x16:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::I8x16RelaxedSwizzle);
+ break;
+ case RelaxedMinVecF32x4:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::F32x4RelaxedMin);
+ break;
+ case RelaxedMaxVecF32x4:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::F32x4RelaxedMax);
+ break;
+ case RelaxedMinVecF64x2:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::F64x2RelaxedMin);
+ break;
+ case RelaxedMaxVecF64x2:
+ o << int8_t(BinaryConsts::SIMDPrefix)
+ << U32LEB(BinaryConsts::F64x2RelaxedMax);
+ break;
+
case InvalidBinary:
WASM_UNREACHABLE("invalid binary op");
}