diff options
Diffstat (limited to 'src/wasm.h')
-rw-r--r-- | src/wasm.h | 22 |
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; |