diff options
Diffstat (limited to 'src/wast-parser.cc')
-rw-r--r-- | src/wast-parser.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/wast-parser.cc b/src/wast-parser.cc index c4e64086..e443f3b2 100644 --- a/src/wast-parser.cc +++ b/src/wast-parser.cc @@ -157,6 +157,7 @@ bool IsPlainInstr(TokenType token_type) { case TokenType::AtomicRmw: case TokenType::AtomicRmwCmpxchg: case TokenType::AtomicNotify: + case TokenType::AtomicFence: case TokenType::AtomicWait: case TokenType::Ternary: case TokenType::SimdLaneOp: @@ -1975,6 +1976,14 @@ Result WastParser::ParsePlainInstr(std::unique_ptr<Expr>* out_expr) { break; } + case TokenType::AtomicFence: { + Token token = Consume(); + ErrorUnlessOpcodeEnabled(token); + uint32_t consistency_model = 0x0; + out_expr->reset(new AtomicFenceExpr(consistency_model, loc)); + break; + } + case TokenType::AtomicWait: { Token token = Consume(); ErrorUnlessOpcodeEnabled(token); |