summaryrefslogtreecommitdiff
path: root/src/wasm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm.h')
-rw-r--r--src/wasm.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/wasm.h b/src/wasm.h
index 2c057b7a4..735b24163 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -433,6 +433,13 @@ enum SIMDShiftOp {
ShrUVecI64x2
};
+enum SIMDLoadOp {
+ LoadSplatVec8x16,
+ LoadSplatVec16x8,
+ LoadSplatVec32x4,
+ LoadSplatVec64x2
+};
+
enum SIMDTernaryOp { Bitselect, QFMAF32x4, QFMSF32x4, QFMAF64x2, QFMSF64x2 };
//
@@ -492,6 +499,7 @@ public:
SIMDShuffleId,
SIMDTernaryId,
SIMDShiftId,
+ SIMDLoadId,
MemoryInitId,
DataDropId,
MemoryCopyId,
@@ -877,6 +885,20 @@ public:
void finalize();
};
+class SIMDLoad : public SpecificExpression<Expression::SIMDLoadId> {
+public:
+ SIMDLoad() = default;
+ SIMDLoad(MixedArena& allocator) {}
+
+ SIMDLoadOp op;
+ Address offset;
+ Address align;
+ Expression* ptr;
+
+ Index getMemBytes();
+ void finalize();
+};
+
class MemoryInit : public SpecificExpression<Expression::MemoryInitId> {
public:
MemoryInit() = default;