diff options
Diffstat (limited to 'include/wabt/shared-validator.h')
-rw-r--r-- | include/wabt/shared-validator.h | 59 |
1 files changed, 49 insertions, 10 deletions
diff --git a/include/wabt/shared-validator.h b/include/wabt/shared-validator.h index 8c1f3988..37927802 100644 --- a/include/wabt/shared-validator.h +++ b/include/wabt/shared-validator.h @@ -104,12 +104,36 @@ class SharedValidator { Result OnLocalDecl(const Location&, Index count, Type type); Result OnAtomicFence(const Location&, uint32_t consistency_model); - Result OnAtomicLoad(const Location&, Opcode, Var memidx, Address align); - Result OnAtomicNotify(const Location&, Opcode, Var memidx, Address align); - Result OnAtomicRmwCmpxchg(const Location&, Opcode, Var memidx, Address align); - Result OnAtomicRmw(const Location&, Opcode, Var memidx, Address align); - Result OnAtomicStore(const Location&, Opcode, Var memidx, Address align); - Result OnAtomicWait(const Location&, Opcode, Var memidx, Address align); + Result OnAtomicLoad(const Location&, + Opcode, + Var memidx, + Address align, + Address offset); + Result OnAtomicNotify(const Location&, + Opcode, + Var memidx, + Address align, + Address offset); + Result OnAtomicRmwCmpxchg(const Location&, + Opcode, + Var memidx, + Address align, + Address offset); + Result OnAtomicRmw(const Location&, + Opcode, + Var memidx, + Address align, + Address offset); + Result OnAtomicStore(const Location&, + Opcode, + Var memidx, + Address align, + Address offset); + Result OnAtomicWait(const Location&, + Opcode, + Var memidx, + Address align, + Address offset); Result OnBinary(const Location&, Opcode); Result OnBlock(const Location&, Type sig_type); Result OnBr(const Location&, Var depth); @@ -133,9 +157,17 @@ class SharedValidator { Result OnGlobalGet(const Location&, Var); Result OnGlobalSet(const Location&, Var); Result OnIf(const Location&, Type sig_type); - Result OnLoad(const Location&, Opcode, Var memidx, Address align); - Result OnLoadSplat(const Location&, Opcode, Var memidx, Address align); - Result OnLoadZero(const Location&, Opcode, Var memidx, Address align); + Result OnLoad(const Location&, Opcode, Var memidx, Address align, Address offset); + Result OnLoadSplat(const Location&, + Opcode, + Var memidx, + Address align, + Address offset); + Result OnLoadZero(const Location&, + Opcode, + Var memidx, + Address align, + Address offset); Result OnLocalGet(const Location&, Var); Result OnLocalSet(const Location&, Var); Result OnLocalTee(const Location&, Var); @@ -159,14 +191,20 @@ class SharedValidator { Opcode, Var memidx, Address align, + Address offset, uint64_t lane_idx); Result OnSimdStoreLane(const Location&, Opcode, Var memidx, Address align, + Address offset, uint64_t lane_idx); Result OnSimdShuffleOp(const Location&, Opcode, v128 lane_idx); - Result OnStore(const Location&, Opcode, Var memidx, Address align); + Result OnStore(const Location&, + Opcode, + Var memidx, + Address align, + Address offset); Result OnTableCopy(const Location&, Var dst_var, Var src_var); Result OnTableFill(const Location&, Var table_var); Result OnTableGet(const Location&, Var table_var); @@ -280,6 +318,7 @@ class SharedValidator { Result CheckDataSegmentIndex(Var data_segment_var); Result CheckAlign(const Location&, Address align, Address natural_align); + Result CheckOffset(const Location&, Address offset, const Limits& limits); Result CheckAtomicAlign(const Location&, Address align, Address natural_align); |