summaryrefslogtreecommitdiff
path: root/src/wasm-binary.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-binary.h')
-rw-r--r--src/wasm-binary.h25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index 9e75d6501..f1396cbb2 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -506,7 +506,26 @@ enum ASTNodes {
I32ReinterpretF32 = 0xbc,
I64ReinterpretF64 = 0xbd,
F32ReinterpretI32 = 0xbe,
- F64ReinterpretI64 = 0xbf
+ F64ReinterpretI64 = 0xbf,
+
+ AtomicPrefix = 0xfe
+};
+
+enum AtomicOpcodes {
+ I32AtomicLoad = 0x10,
+ I64AtomicLoad = 0x11,
+ I32AtomicLoad8U = 0x12,
+ I32AtomicLoad16U = 0x13,
+ I64AtomicLoad8U = 0x14,
+ I64AtomicLoad16U = 0x15,
+ I64AtomicLoad32U = 0x16,
+ I32AtomicStore = 0x17,
+ I64AtomicStore = 0x18,
+ I32AtomicStore8 = 0x19,
+ I32AtomicStore16 = 0x1a,
+ I64AtomicStore8 = 0x1b,
+ I64AtomicStore16 = 0x1c,
+ I64AtomicStore32 = 0x1d
};
enum MemoryAccess {
@@ -812,8 +831,8 @@ public:
void visitGetGlobal(GetGlobal *curr);
void visitSetGlobal(SetGlobal *curr);
void readMemoryAccess(Address& alignment, size_t bytes, Address& offset);
- bool maybeVisitLoad(Expression*& out, uint8_t code);
- bool maybeVisitStore(Expression*& out, uint8_t code);
+ bool maybeVisitLoad(Expression*& out, uint8_t code, bool isAtomic);
+ bool maybeVisitStore(Expression*& out, uint8_t code, bool isAtomic);
bool maybeVisitConst(Expression*& out, uint8_t code);
bool maybeVisitUnary(Expression*& out, uint8_t code);
bool maybeVisitBinary(Expression*& out, uint8_t code);