ROSE  0.11.83.1
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 Partitioner &, const Function::Ptr &, const AddressIntervalSet &pltAddresses)
 Matches a PowerPC ELF dynamic function stub. More...
 
void nameImportThunks (const Partitioner &, SgAsmInterpretation *)
 Give names to thunks for dynamically linked functions. More...
 
boost::logic::tribool isFunctionReturn (const Partitioner &, const BasicBlock::Ptr &)
 Determines whether basic block is a function return. More...
 

Function Documentation

Sawyer::Optional<rose_addr_t> Rose::BinaryAnalysis::Partitioner2::ModulesPowerpc::matchElfDynamicStub ( const Partitioner ,
const Function::Ptr ,
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 Partitioner ,
SgAsmInterpretation  
)

Give names to thunks for dynamically linked functions.

boost::logic::tribool Rose::BinaryAnalysis::Partitioner2::ModulesPowerpc::isFunctionReturn ( const Partitioner ,
const BasicBlock::Ptr  
)

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.