summaryrefslogtreecommitdiff
path: root/src/wasm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm.h')
-rw-r--r--src/wasm.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/wasm.h b/src/wasm.h
index bd2e31814..0050fcc28 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -481,7 +481,7 @@ enum SIMDReplaceOp {
ReplaceLaneVecI32x4,
ReplaceLaneVecI64x2,
ReplaceLaneVecF32x4,
- ReplaceLaneVecF64x2
+ ReplaceLaneVecF64x2,
};
enum SIMDShiftOp {
@@ -537,6 +537,11 @@ enum SIMDTernaryOp {
SignSelectVec64x2
};
+enum SIMDWidenOp {
+ WidenSVecI8x16ToVecI32x4,
+ WidenUVecI8x16ToVecI32x4,
+};
+
enum PrefetchOp {
PrefetchTemporal,
PrefetchNontemporal,
@@ -625,6 +630,7 @@ public:
SIMDShiftId,
SIMDLoadId,
SIMDLoadStoreLaneId,
+ SIMDWidenId,
MemoryInitId,
DataDropId,
MemoryCopyId,
@@ -1072,6 +1078,18 @@ public:
void finalize();
};
+class SIMDWiden : public SpecificExpression<Expression::SIMDWidenId> {
+public:
+ SIMDWiden() = default;
+ SIMDWiden(MixedArena& allocator) {}
+
+ SIMDWidenOp op;
+ uint8_t index;
+ Expression* vec;
+
+ void finalize();
+};
+
class Prefetch : public SpecificExpression<Expression::PrefetchId> {
public:
Prefetch() = default;