summaryrefslogtreecommitdiff
path: root/src/wast-parser.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/wast-parser.cc')
-rw-r--r--src/wast-parser.cc9
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);