ROSE
0.9.6a
|
Holds an instruction along with some other information about the instruction. More...
#include <Partitioner.h>
Public Member Functions | |
Instruction (SgAsmInstruction *node) | |
Disassembler::AddressSet | get_successors (bool *complete) const |
rose_addr_t | get_address () const |
size_t | get_size () const |
bool | terminates_basic_block () const |
SgUnsignedCharList | get_raw_bytes () const |
Public Attributes | |
SgAsmInstruction * | node |
The underlying instruction node for an AST. More... | |
BasicBlock * | bblock |
Block to which this instruction belongs, if any. More... | |
Holds an instruction along with some other information about the instruction.
This is mostly an optimization. Previous versions of the partitioner kept the additional information in a separate std::map keyed by instruction address and this proved to be a major expense, partitularly within the find_bb_containing() hot path.
Definition at line 140 of file Partitioner.h.
|
inline |
Definition at line 142 of file Partitioner.h.
|
inline |
Definition at line 147 of file Partitioner.h.
References SgAsmInstruction::get_successors(), and node.
Referenced by Partitioner::FindThunks::operator()().
|
inline |
Definition at line 148 of file Partitioner.h.
References SgAsmStatement::get_address(), and node.
Referenced by Partitioner::analyze_cfg(), Partitioner::discard(), Partitioner::fixup_pointers(), Partitioner::mark_elf_plt_entries(), Partitioner::FindInsnPadding::operator()(), Partitioner::FindThunks::operator()(), Partitioner::FindThunkTables::operator()(), Partitioner::FindPostFunctionInsns::operator()(), Partitioner::scan_contiguous_insns(), Partitioner::successors(), and Partitioner::update_analyses().
|
inline |
Definition at line 149 of file Partitioner.h.
References SgAsmInstruction::get_size(), and node.
Referenced by Partitioner::analyze_cfg(), Partitioner::find_bb_containing(), Partitioner::mark_elf_plt_entries(), Partitioner::FindInsnPadding::operator()(), Partitioner::FindThunks::operator()(), Partitioner::FindThunkTables::operator()(), Partitioner::FindPostFunctionInsns::operator()(), Partitioner::successors(), and Partitioner::update_analyses().
|
inline |
Definition at line 150 of file Partitioner.h.
References node, and SgAsmInstruction::terminates_basic_block().
Referenced by Partitioner::find_bb_containing().
|
inline |
Definition at line 151 of file Partitioner.h.
References SgAsmInstruction::get_raw_bytes(), and node.
Referenced by Partitioner::FindInsnPadding::operator()().
SgAsmInstruction* Partitioner::Instruction::node |
The underlying instruction node for an AST.
Definition at line 143 of file Partitioner.h.
Referenced by Partitioner::build_ast(), Partitioner::fixup_pointers(), get_address(), get_raw_bytes(), get_size(), get_successors(), Partitioner::is_pe_dynlink_thunk(), Partitioner::isSgAsmInstruction(), Partitioner::isSgAsmx86Instruction(), and terminates_basic_block().
BasicBlock* Partitioner::Instruction::bblock |
Block to which this instruction belongs, if any.
Definition at line 144 of file Partitioner.h.
Referenced by Partitioner::append(), Partitioner::discard(), Partitioner::find_bb_containing(), Partitioner::fixup_pointers(), and Partitioner::truncate().