summaryrefslogtreecommitdiff
path: root/src/wasm-binary.h
diff options
context:
space:
mode:
authorBrendan Dahl <brendan.dahl@gmail.com>2024-08-06 14:15:58 -0700
committerGitHub <noreply@github.com>2024-08-06 14:15:58 -0700
commit0c269482097ae9da62a690b0ace406e2d2109c48 (patch)
treed7fa2f2f5b9e7e703dce9805f9dbd1bb16f65cfb /src/wasm-binary.h
parentd5a5425c0c76cfc08711b81d6ec70c3a2879e405 (diff)
downloadbinaryen-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.h12
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);