summaryrefslogtreecommitdiff
path: root/src/wasm.h
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2020-12-07 16:58:43 -0800
committerGitHub <noreply@github.com>2020-12-07 16:58:43 -0800
commita84898c11df3d93fb69365fb274a9bb06d60ed47 (patch)
treec2bc444354ec5731dccb090e5437f00840bf7d9a /src/wasm.h
parent72a7881b42ebed6b2ef36e912a8f5937106e5824 (diff)
downloadbinaryen-a84898c11df3d93fb69365fb274a9bb06d60ed47.tar.gz
binaryen-a84898c11df3d93fb69365fb274a9bb06d60ed47.tar.bz2
binaryen-a84898c11df3d93fb69365fb274a9bb06d60ed47.zip
[GC] Add struct.set (#3430)
Mostly straightforward after struct.get. This renames the value field in struct.get to ref. I think this makes more sense because struct.set has both a reference to a thing, and a value to set onto that thing. So calling the former ref seems more consistent, giving us ref, value. This mirrors load/store for example where we use ptr, value, and ref is playing the role of ptr here basically.
Diffstat (limited to 'src/wasm.h')
-rw-r--r--src/wasm.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/wasm.h b/src/wasm.h
index cc390573d..c1b5b4bdf 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -1353,7 +1353,7 @@ public:
StructGet(MixedArena& allocator) {}
Index index;
- Expression* value;
+ Expression* ref;
// Packed fields have a sign.
bool signed_ = false;
@@ -1364,7 +1364,11 @@ class StructSet : public SpecificExpression<Expression::StructSetId> {
public:
StructSet(MixedArena& allocator) {}
- void finalize() { WASM_UNREACHABLE("TODO (gc): struct.set"); }
+ Index index;
+ Expression* ref;
+ Expression* value;
+
+ void finalize();
};
class ArrayNew : public SpecificExpression<Expression::ArrayNewId> {