summaryrefslogtreecommitdiff
path: root/src/wasm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm.h')
-rw-r--r--src/wasm.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/wasm.h b/src/wasm.h
index 974bf1730..e9782ab6e 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -183,6 +183,8 @@ public:
UnreachableId,
AtomicCmpxchgId,
AtomicRMWId,
+ AtomicWaitId,
+ AtomicWakeId,
NumExpressionIds
};
Id _id;
@@ -456,6 +458,30 @@ class AtomicCmpxchg : public SpecificExpression<Expression::AtomicCmpxchgId> {
void finalize();
};
+class AtomicWait : public SpecificExpression<Expression::AtomicWaitId> {
+ public:
+ AtomicWait() = default;
+ AtomicWait(MixedArena& allocator) : AtomicWait() {}
+
+ Expression* ptr;
+ Expression* expected;
+ Expression* timeout;
+ WasmType expectedType;
+
+ void finalize();
+};
+
+class AtomicWake : public SpecificExpression<Expression::AtomicWakeId> {
+ public:
+ AtomicWake() = default;
+ AtomicWake(MixedArena& allocator) : AtomicWake() {}
+
+ Expression* ptr;
+ Expression* wakeCount;
+
+ void finalize();
+};
+
class Const : public SpecificExpression<Expression::ConstId> {
public:
Const() {}