diff options
Diffstat (limited to 'src/passes/InstrumentLocals.cpp')
-rw-r--r-- | src/passes/InstrumentLocals.cpp | 16 |
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( |