summaryrefslogtreecommitdiff
path: root/src/wasm-ir-builder.h
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2023-12-12 20:28:40 -0800
committerGitHub <noreply@github.com>2023-12-12 20:28:40 -0800
commit9e636855b582d1499a87fb73f55d85102ce95a58 (patch)
tree4b646f743e3fc645cd37d06d9f37f65d9e4840c1 /src/wasm-ir-builder.h
parent8e9199274e4dbd93b1ca65d9c053c4610599e69f (diff)
downloadbinaryen-9e636855b582d1499a87fb73f55d85102ce95a58.tar.gz
binaryen-9e636855b582d1499a87fb73f55d85102ce95a58.tar.bz2
binaryen-9e636855b582d1499a87fb73f55d85102ce95a58.zip
[Parser] Parse the remaining array operations (#6158)
Parse `array.new_elem`, `array.init_data`, and `array.init_elem`. Accidentally also includes: * [Parser] Parse string types and operations (#6161)
Diffstat (limited to 'src/wasm-ir-builder.h')
-rw-r--r--src/wasm-ir-builder.h32
1 files changed, 17 insertions, 15 deletions
diff --git a/src/wasm-ir-builder.h b/src/wasm-ir-builder.h
index a7e36bd10..8b01977be 100644
--- a/src/wasm-ir-builder.h
+++ b/src/wasm-ir-builder.h
@@ -181,22 +181,22 @@ public:
[[nodiscard]] Result<> makeArrayLen();
[[nodiscard]] Result<> makeArrayCopy(HeapType destType, HeapType srcType);
[[nodiscard]] Result<> makeArrayFill(HeapType type);
- // [[nodiscard]] Result<> makeArrayInitData();
- // [[nodiscard]] Result<> makeArrayInitElem();
+ [[nodiscard]] Result<> makeArrayInitData(HeapType type, Name data);
+ [[nodiscard]] Result<> makeArrayInitElem(HeapType type, Name elem);
[[nodiscard]] Result<> makeRefAs(RefAsOp op);
- // [[nodiscard]] Result<> makeStringNew();
- // [[nodiscard]] Result<> makeStringConst();
- // [[nodiscard]] Result<> makeStringMeasure();
- // [[nodiscard]] Result<> makeStringEncode();
- // [[nodiscard]] Result<> makeStringConcat();
- // [[nodiscard]] Result<> makeStringEq();
- // [[nodiscard]] Result<> makeStringAs();
- // [[nodiscard]] Result<> makeStringWTF8Advance();
- // [[nodiscard]] Result<> makeStringWTF16Get();
- // [[nodiscard]] Result<> makeStringIterNext();
- // [[nodiscard]] Result<> makeStringIterMove();
- // [[nodiscard]] Result<> makeStringSliceWTF();
- // [[nodiscard]] Result<> makeStringSliceIter();
+ [[nodiscard]] Result<> makeStringNew(StringNewOp op, bool try_, Name mem);
+ [[nodiscard]] Result<> makeStringConst(Name string);
+ [[nodiscard]] Result<> makeStringMeasure(StringMeasureOp op);
+ [[nodiscard]] Result<> makeStringEncode(StringEncodeOp op, Name mem);
+ [[nodiscard]] Result<> makeStringConcat();
+ [[nodiscard]] Result<> makeStringEq(StringEqOp op);
+ [[nodiscard]] Result<> makeStringAs(StringAsOp op);
+ [[nodiscard]] Result<> makeStringWTF8Advance();
+ [[nodiscard]] Result<> makeStringWTF16Get();
+ [[nodiscard]] Result<> makeStringIterNext();
+ [[nodiscard]] Result<> makeStringIterMove(StringIterMoveOp op);
+ [[nodiscard]] Result<> makeStringSliceWTF(StringSliceWTFOp op);
+ [[nodiscard]] Result<> makeStringSliceIter();
// Private functions that must be public for technical reasons.
[[nodiscard]] Result<> visitExpression(Expression*);
@@ -213,6 +213,8 @@ public:
[[nodiscard]] Result<> visitCallIndirect(CallIndirect*);
[[nodiscard]] Result<> visitCallRef(CallRef*);
[[nodiscard]] Result<> visitThrow(Throw*);
+ [[nodiscard]] Result<> visitStringNew(StringNew*);
+ [[nodiscard]] Result<> visitStringEncode(StringEncode*);
private:
Module& wasm;