diff options
author | Sam Clegg <sbc@chromium.org> | 2019-11-14 18:26:49 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-14 18:26:49 -0800 |
commit | ddcec7c6122bbf0ee82a197fbb739ffcc52b63d9 (patch) | |
tree | e89f48409fee032205192906d51c81279c9edf22 /src/type-checker.cc | |
parent | df55ded934ec80d102dc84225c1e76bbdb8c8f0c (diff) | |
download | wabt-ddcec7c6122bbf0ee82a197fbb739ffcc52b63d9.tar.gz wabt-ddcec7c6122bbf0ee82a197fbb739ffcc52b63d9.tar.bz2 wabt-ddcec7c6122bbf0ee82a197fbb739ffcc52b63d9.zip |
reference-types: Add multi-table support to the interpreter (#1218)
This involved plumbing the table argument for `table.init` and
`table.copy` all the way through rather than assuming they were
always zero.
Update the rather complex logic for assigning names to elem segments to
handle active elem segments which both name themselves and the table
they apply too.
Diffstat (limited to 'src/type-checker.cc')
-rw-r--r-- | src/type-checker.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/type-checker.cc b/src/type-checker.cc index 7aa1eac3..d4a18046 100644 --- a/src/type-checker.cc +++ b/src/type-checker.cc @@ -641,17 +641,17 @@ Result TypeChecker::OnElemDrop(uint32_t segment) { return Result::Ok; } -Result TypeChecker::OnTableInit(uint32_t segment) { +Result TypeChecker::OnTableInit(uint32_t table, uint32_t segment) { return CheckOpcode3(Opcode::TableInit); } -Result TypeChecker::OnTableGet(Index segment) { +Result TypeChecker::OnTableGet(Index table_index) { Result result = PopAndCheck1Type(Type::I32, "table.get"); PushType(Type::Nullref); // TODO: should be the table's type return result; } -Result TypeChecker::OnTableSet(Index segment) { +Result TypeChecker::OnTableSet(Index table_index) { // TODO: anyref here should be the table's type return PopAndCheck2Types(Type::I32, Type::Anyref, "table.set"); } |