Skip to content

analysis and instrumentation support for Wasm reference and table instructions - #10

Open
abelstuker wants to merge 7 commits into
aaronmunsters:mainfrom
abelstuker:main
Open

analysis and instrumentation support for Wasm reference and table instructions#10
abelstuker wants to merge 7 commits into
aaronmunsters:mainfrom
abelstuker:main

Conversation

@abelstuker

Copy link
Copy Markdown
Collaborator

Added instrumentation logic and analysis hooks for the following instructions:

  • references: ref.func, ref.null, ref.is_null
  • tables: table.get, table.set, table.size, table.grow, table.fill, table.copy, table.init, elem.drop

Note: funcrefs are never accessible from within the analysis.

As with the existing analysis hooks, some hooks allow for modification of stack operands.
Additionally, some new hooks (i.e. table_copy and table_init) let the implemented analysis modify multiple stack operands in the same hook.
Due to the lack of multivalue return support, the set of modified values are not returned by the trap, but they are stored within the analysis module instead. The analysis module exposes functions for the retrieval of those values by the instrumented input program. Hereby, the (potentially modified) values retrieved from the analysis logic are put on the stack as operands for the original instruction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant