summaryrefslogtreecommitdiff
path: root/include/wabt/shared-validator.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/wabt/shared-validator.h')
-rw-r--r--include/wabt/shared-validator.h59
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);