ROSE  0.11.145.0
Classes | Functions
Rose::BinaryAnalysis::Partitioner2::ModulesPowerpc Namespace Reference

Description

Disassembly and partitioning utilities for PowerPC.

Classes

class  MatchStwuPrologue
 Matches a PowerPC function prolog using STWU. More...
 

Functions

Sawyer::Optional< rose_addr_t > matchElfDynamicStub (const PartitionerConstPtr &, const FunctionPtr &, const AddressIntervalSet &pltAddresses)
 Matches a PowerPC ELF dynamic function stub. More...
 
void nameImportThunks (const PartitionerConstPtr &, SgAsmInterpretation *)
 Give names to thunks for dynamically linked functions. More...
 
boost::logic::tribool isFunctionReturn (const PartitionerConstPtr &, const BasicBlockPtr &)
 Determines whether basic block is a function return. More...
 

Function Documentation

Sawyer::Optional<rose_addr_t> Rose::BinaryAnalysis::Partitioner2::ModulesPowerpc::matchElfDynamicStub ( const PartitionerConstPtr ,
const FunctionPtr ,
const AddressIntervalSet pltAddresses 
)

Matches a PowerPC ELF dynamic function stub.

If the function's instructions make it look like an ELF dynamic linking stub and it references an entry in the Procedure Loookup Table (defined by the PLT location in memory), then return the PLT entry address, otherwise return nothing.

void Rose::BinaryAnalysis::Partitioner2::ModulesPowerpc::nameImportThunks ( const PartitionerConstPtr ,
SgAsmInterpretation  
)

Give names to thunks for dynamically linked functions.

boost::logic::tribool Rose::BinaryAnalysis::Partitioner2::ModulesPowerpc::isFunctionReturn ( const PartitionerConstPtr ,
const BasicBlockPtr  
)

Determines whether basic block is a function return.

Returns true if the basic block appears to be a function return, semantically. Indeterminate if semantics are disabled.