ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Partitioner::Instruction Class Reference

Holds an instruction along with some other information about the instruction. More...

#include <Partitioner.h>

Collaboration diagram for Partitioner::Instruction:

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

SgAsmInstructionnode
 The underlying instruction node for an AST. More...
 
BasicBlockbblock
 Block to which this instruction belongs, if any. More...
 

Detailed Description

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.

Constructor & Destructor Documentation

Partitioner::Instruction::Instruction ( SgAsmInstruction node)
inline

Definition at line 142 of file Partitioner.h.

Member Function Documentation

Disassembler::AddressSet Partitioner::Instruction::get_successors ( bool *  complete) const
inline

Definition at line 147 of file Partitioner.h.

References SgAsmInstruction::get_successors(), and node.

Referenced by Partitioner::FindThunks::operator()().

bool Partitioner::Instruction::terminates_basic_block ( ) const
inline

Definition at line 150 of file Partitioner.h.

References node, and SgAsmInstruction::terminates_basic_block().

Referenced by Partitioner::find_bb_containing().

SgUnsignedCharList Partitioner::Instruction::get_raw_bytes ( ) const
inline

Definition at line 151 of file Partitioner.h.

References SgAsmInstruction::get_raw_bytes(), and node.

Referenced by Partitioner::FindInsnPadding::operator()().

Member Data Documentation

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().


The documentation for this class was generated from the following file: