diff options
Diffstat (limited to 'src/interp/binary-reader-interp.cc')
-rw-r--r-- | src/interp/binary-reader-interp.cc | 7 |
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) { |