diff options
Diffstat (limited to 'src/wasm-interpreter.h')
-rw-r--r-- | src/wasm-interpreter.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h index 2952869c6..2179c4923 100644 --- a/src/wasm-interpreter.h +++ b/src/wasm-interpreter.h @@ -1360,6 +1360,7 @@ public: } Flow visitTableGet(TableGet* curr) { WASM_UNREACHABLE("unimp"); } Flow visitTableSet(TableSet* curr) { WASM_UNREACHABLE("unimp"); } + Flow visitTableSize(TableSize* curr) { WASM_UNREACHABLE("unimp"); } Flow visitTry(Try* curr) { WASM_UNREACHABLE("unimp"); } Flow visitThrow(Throw* curr) { NOTE_ENTER("Throw"); @@ -2167,6 +2168,10 @@ public: NOTE_ENTER("TableSet"); return Flow(NONCONSTANT_FLOW); } + Flow visitTableSize(TableSize* curr) { + NOTE_ENTER("TableSize"); + return Flow(NONCONSTANT_FLOW); + } Flow visitLoad(Load* curr) { NOTE_ENTER("Load"); return Flow(NONCONSTANT_FLOW); @@ -2798,7 +2803,6 @@ private: return info.interface->tableLoad(info.name, index.getSingleValue().geti32()); } - Flow visitTableSet(TableSet* curr) { NOTE_ENTER("TableSet"); Flow index = this->visit(curr->index); @@ -2815,6 +2819,13 @@ private: return Flow(); } + Flow visitTableSize(TableSize* curr) { + NOTE_ENTER("TableSize"); + auto table = instance.wasm.getTable(curr->table); + // TODO: properly handle table size when TableGrow exists + return Literal::makeFromInt32(table->initial, Type::i32); + } + Flow visitLocalGet(LocalGet* curr) { NOTE_ENTER("LocalGet"); auto index = curr->index; |