summaryrefslogtreecommitdiff
path: root/src/wasm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm.h')
-rw-r--r--src/wasm.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/wasm.h b/src/wasm.h
index d41ad863a..0a4c0db16 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -562,6 +562,18 @@ public:
TupleExtractId,
I31NewId,
I31GetId,
+ RefTestId,
+ RefCastId,
+ BrOnCastId,
+ RttCanonId,
+ RttSubId,
+ StructNewId,
+ StructGetId,
+ StructSetId,
+ ArrayNewId,
+ ArrayGetId,
+ ArraySetId,
+ ArrayLenId,
NumExpressionIds
};
Id _id;
@@ -1224,6 +1236,90 @@ public:
void finalize();
};
+class RefTest : public SpecificExpression<Expression::RefTestId> {
+public:
+ RefTest(MixedArena& allocator) {}
+
+ void finalize() { WASM_UNREACHABLE("TODO (gc): ref.test"); }
+};
+
+class RefCast : public SpecificExpression<Expression::RefCastId> {
+public:
+ RefCast(MixedArena& allocator) {}
+
+ void finalize() { WASM_UNREACHABLE("TODO (gc): ref.cast"); }
+};
+
+class BrOnCast : public SpecificExpression<Expression::BrOnCastId> {
+public:
+ BrOnCast(MixedArena& allocator) {}
+
+ void finalize() { WASM_UNREACHABLE("TODO (gc): br_on_cast"); }
+};
+
+class RttCanon : public SpecificExpression<Expression::RttCanonId> {
+public:
+ RttCanon(MixedArena& allocator) {}
+
+ void finalize() { WASM_UNREACHABLE("TODO (gc): rtt.canon"); }
+};
+
+class RttSub : public SpecificExpression<Expression::RttSubId> {
+public:
+ RttSub(MixedArena& allocator) {}
+
+ void finalize() { WASM_UNREACHABLE("TODO (gc): rtt.sub"); }
+};
+
+class StructNew : public SpecificExpression<Expression::StructNewId> {
+public:
+ StructNew(MixedArena& allocator) {}
+
+ void finalize() { WASM_UNREACHABLE("TODO (gc): struct.new"); }
+};
+
+class StructGet : public SpecificExpression<Expression::StructGetId> {
+public:
+ StructGet(MixedArena& allocator) {}
+
+ void finalize() { WASM_UNREACHABLE("TODO (gc): struct.get"); }
+};
+
+class StructSet : public SpecificExpression<Expression::StructSetId> {
+public:
+ StructSet(MixedArena& allocator) {}
+
+ void finalize() { WASM_UNREACHABLE("TODO (gc): struct.set"); }
+};
+
+class ArrayNew : public SpecificExpression<Expression::ArrayNewId> {
+public:
+ ArrayNew(MixedArena& allocator) {}
+
+ void finalize() { WASM_UNREACHABLE("TODO (gc): array.new"); }
+};
+
+class ArrayGet : public SpecificExpression<Expression::ArrayGetId> {
+public:
+ ArrayGet(MixedArena& allocator) {}
+
+ void finalize() { WASM_UNREACHABLE("TODO (gc): array.get"); }
+};
+
+class ArraySet : public SpecificExpression<Expression::ArraySetId> {
+public:
+ ArraySet(MixedArena& allocator) {}
+
+ void finalize() { WASM_UNREACHABLE("TODO (gc): array.set"); }
+};
+
+class ArrayLen : public SpecificExpression<Expression::ArrayLenId> {
+public:
+ ArrayLen(MixedArena& allocator) {}
+
+ void finalize() { WASM_UNREACHABLE("TODO (gc): array.len"); }
+};
+
// Globals
struct Importable {