Expand description
Hashlink bytecode disassembler and analyzer. See Bytecode for an entrypoint to the library.
Note about safety
We don’t deal with self-references, hence we deal with indexes into structures. Be careful when calling functions on Ref* objects, as no bound checking is done and every index is assumed to be valid.
Modules
Analysis functions and callgraph generation
Functions to display bytecode elements
Opcodes definitions.
Bytecode elements definitions. All the Ref* types in this modules are references to bytecode elements like constants or function. They are required since we cannot use rust references as that would make our structure self-referential. They makes the code look a bit more complicated than it actually is. Every Ref* struct is cheaply copyable.
Structs
Bytecode structure containing all the information. Every field is public for flexibility, but you aren’t encouraged to modify them.