summaryrefslogtreecommitdiff
path: root/src/passes/InstrumentLocals.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/InstrumentLocals.cpp')
-rw-r--r--src/passes/InstrumentLocals.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/passes/InstrumentLocals.cpp b/src/passes/InstrumentLocals.cpp
index 004bfba74..99a93af69 100644
--- a/src/passes/InstrumentLocals.cpp
+++ b/src/passes/InstrumentLocals.cpp
@@ -60,6 +60,7 @@ Name get_externref("get_externref");
Name get_exnref("get_exnref");
Name get_anyref("get_anyref");
Name get_eqref("get_eqref");
+Name get_dataref("get_dataref");
Name get_i31ref("get_i31ref");
Name get_v128("get_v128");
@@ -72,6 +73,7 @@ Name set_externref("set_externref");
Name set_exnref("set_exnref");
Name set_anyref("set_anyref");
Name set_eqref("set_eqref");
+Name set_dataref("set_dataref");
Name set_i31ref("set_i31ref");
Name set_v128("set_v128");
@@ -110,6 +112,9 @@ struct InstrumentLocals : public WalkerPass<PostWalker<InstrumentLocals>> {
case Type::eqref:
import = get_eqref;
break;
+ case Type::dataref:
+ import = get_dataref;
+ break;
case Type::i31ref:
import = get_i31ref;
break;
@@ -170,6 +175,9 @@ struct InstrumentLocals : public WalkerPass<PostWalker<InstrumentLocals>> {
case Type::eqref:
import = set_eqref;
break;
+ case Type::dataref:
+ import = set_dataref;
+ break;
case Type::i31ref:
import = set_i31ref;
break;
@@ -227,6 +235,14 @@ struct InstrumentLocals : public WalkerPass<PostWalker<InstrumentLocals>> {
curr, get_eqref, {Type::i32, Type::i32, Type::eqref}, Type::eqref);
addImport(
curr, set_eqref, {Type::i32, Type::i32, Type::eqref}, Type::eqref);
+ addImport(curr,
+ get_dataref,
+ {Type::i32, Type::i32, Type::dataref},
+ Type::dataref);
+ addImport(curr,
+ set_dataref,
+ {Type::i32, Type::i32, Type::dataref},
+ Type::dataref);
addImport(
curr, get_i31ref, {Type::i32, Type::i32, Type::i31ref}, Type::i31ref);
addImport(