summaryrefslogtreecommitdiff
path: root/src/wasm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm.h')
-rw-r--r--src/wasm.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/wasm.h b/src/wasm.h
index 56432faf9..286604848 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -177,6 +177,7 @@ public:
HostId,
NopId,
UnreachableId,
+ AtomicRMWId,
NumExpressionIds
};
Id _id;
@@ -398,6 +399,7 @@ public:
bool signed_;
Address offset;
Address align;
+ bool isAtomic;
Expression* ptr;
// type must be set during creation, cannot be inferred
@@ -413,6 +415,7 @@ public:
uint8_t bytes;
Address offset;
Address align;
+ bool isAtomic;
Expression* ptr;
Expression* value;
WasmType valueType; // the store never returns a value
@@ -511,6 +514,13 @@ public:
Unreachable(MixedArena& allocator) : Unreachable() {}
};
+class AtomicRMW : public SpecificExpression<Expression::AtomicRMWId> {
+ public:
+ AtomicRMW() {}
+ AtomicRMW(MixedArena& allocator) : AtomicRMW() {}
+ bool finalize();
+};
+
// Globals
class Function {