diff options
author | Brendan Dahl <brendan.dahl@gmail.com> | 2024-08-06 14:15:58 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-06 14:15:58 -0700 |
commit | 0c269482097ae9da62a690b0ace406e2d2109c48 (patch) | |
tree | d7fa2f2f5b9e7e703dce9805f9dbd1bb16f65cfb /src/wasm-binary.h | |
parent | d5a5425c0c76cfc08711b81d6ec70c3a2879e405 (diff) | |
download | binaryen-0c269482097ae9da62a690b0ace406e2d2109c48.tar.gz binaryen-0c269482097ae9da62a690b0ace406e2d2109c48.tar.bz2 binaryen-0c269482097ae9da62a690b0ace406e2d2109c48.zip |
[FP16] Implement load and store instructions. (#6796)
Specified at
https://github.com/WebAssembly/half-precision/blob/main/proposals/half-precision/Overview.md
Diffstat (limited to 'src/wasm-binary.h')
-rw-r--r-- | src/wasm-binary.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h index 8a6f825ff..5fae1b64d 100644 --- a/src/wasm-binary.h +++ b/src/wasm-binary.h @@ -1051,6 +1051,10 @@ enum ASTNodes { I16x8DotI8x16I7x16S = 0x112, I32x4DotI8x16I7x16AddS = 0x113, + // half precision opcodes + F32_F16LoadMem = 0x30, + F32_F16StoreMem = 0x31, + // bulk memory opcodes MemoryInit = 0x08, @@ -1703,8 +1707,12 @@ public: void visitLocalSet(LocalSet* curr, uint8_t code); void visitGlobalGet(GlobalGet* curr); void visitGlobalSet(GlobalSet* curr); - bool maybeVisitLoad(Expression*& out, uint8_t code, bool isAtomic); - bool maybeVisitStore(Expression*& out, uint8_t code, bool isAtomic); + bool maybeVisitLoad(Expression*& out, + uint8_t code, + std::optional<BinaryConsts::ASTNodes> prefix); + bool maybeVisitStore(Expression*& out, + uint8_t code, + std::optional<BinaryConsts::ASTNodes> prefix); bool maybeVisitNontrappingTrunc(Expression*& out, uint32_t code); bool maybeVisitAtomicRMW(Expression*& out, uint8_t code); bool maybeVisitAtomicCmpxchg(Expression*& out, uint8_t code); |