diff options
Diffstat (limited to 'src/wasm-binary.h')
-rw-r--r-- | src/wasm-binary.h | 25 |
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); |