summaryrefslogtreecommitdiff
path: root/src/interp/binary-reader-interp.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/binary-reader-interp.cc')
-rw-r--r--src/interp/binary-reader-interp.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/interp/binary-reader-interp.cc b/src/interp/binary-reader-interp.cc
index 584ddb92..96eaeadd 100644
--- a/src/interp/binary-reader-interp.cc
+++ b/src/interp/binary-reader-interp.cc
@@ -149,6 +149,7 @@ class BinaryReaderInterp : public BinaryReaderNop {
Result OnAtomicWaitExpr(Opcode opcode,
uint32_t alignment_log2,
Address offset) override;
+ Result OnAtomicFenceExpr(uint32_t consistency_model) override;
Result OnAtomicNotifyExpr(Opcode opcode,
uint32_t alignment_log2,
Address offset) override;
@@ -1277,6 +1278,12 @@ Result BinaryReaderInterp::OnAtomicWaitExpr(Opcode opcode,
return Result::Ok;
}
+Result BinaryReaderInterp::OnAtomicFenceExpr(uint32_t consistency_model) {
+ CHECK_RESULT(validator_.OnAtomicFence(loc, consistency_model));
+ istream_.Emit(Opcode::AtomicFence, consistency_model);
+ return Result::Ok;
+}
+
Result BinaryReaderInterp::OnAtomicNotifyExpr(Opcode opcode,
uint32_t align_log2,
Address offset) {