diff options
author | Alon Zakai <azakai@google.com> | 2021-09-10 09:39:10 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-10 09:39:10 -0700 |
commit | 3ed93d00b8f7c0d1f4ab2086b386836f2914dc0e (patch) | |
tree | 0511118fad9439fe6995ff0fe1e67b3231b67c14 /src/wasm/wasm-stack.cpp | |
parent | 23e452a5c89cc520a1d08bb465785bcb79a43baa (diff) | |
download | binaryen-3ed93d00b8f7c0d1f4ab2086b386836f2914dc0e.tar.gz binaryen-3ed93d00b8f7c0d1f4ab2086b386836f2914dc0e.tar.bz2 binaryen-3ed93d00b8f7c0d1f4ab2086b386836f2914dc0e.zip |
[Wasm GC] ArrayInit support (#4138)
array.init is like array.new_with_rtt except that it takes
as arguments the values to initialize the array with (as opposed to
a size and an optional initial value).
Spec: https://docs.google.com/document/d/1afthjsL_B9UaMqCA5ekgVmOm75BVFu6duHNsN9-gnXw/edit#
Diffstat (limited to 'src/wasm/wasm-stack.cpp')
-rw-r--r-- | src/wasm/wasm-stack.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/wasm/wasm-stack.cpp b/src/wasm/wasm-stack.cpp index 7b682a264..e5460cf6f 100644 --- a/src/wasm/wasm-stack.cpp +++ b/src/wasm/wasm-stack.cpp @@ -2040,6 +2040,12 @@ void BinaryInstWriter::visitArrayNew(ArrayNew* curr) { parent.writeIndexedHeapType(curr->rtt->type.getHeapType()); } +void BinaryInstWriter::visitArrayInit(ArrayInit* curr) { + o << int8_t(BinaryConsts::GCPrefix) << U32LEB(BinaryConsts::ArrayInit); + parent.writeIndexedHeapType(curr->rtt->type.getHeapType()); + o << U32LEB(curr->values.size()); +} + void BinaryInstWriter::visitArrayGet(ArrayGet* curr) { auto heapType = curr->ref->type.getHeapType(); const auto& field = heapType.getArray().element; |