1#ifndef ROSE_BinaryAnalysis_Architecture_X86_H 
    2#define ROSE_BinaryAnalysis_Architecture_X86_H 
    3#include <featureTests.h> 
    4#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
    5#include <Rose/BinaryAnalysis/Architecture/Base.h> 
    8namespace BinaryAnalysis {
 
   44    virtual std::vector<Partitioner2::FunctionPrologueMatcherPtr>
 
   47    virtual std::vector<Partitioner2::BasicBlockCallbackPtr>
 
 
Information about alignments.
 
Base class for architecture definitions.
 
size_t bitsPerWord() const
Property: Word size.
 
size_t bytesPerWord() const
Property: Word size.
 
const std::string & name() const
Property: Architecture definition name.
 
Common base class for all x86 architectures.
 
Sawyer::Optional< Address > branchTarget(SgAsmInstruction *) const override
Obtains the virtual address for a branching instruction.
 
std::string instructionMnemonic(const SgAsmInstruction *) const override
Mnemonic for an instruction.
 
bool isUnknown(const SgAsmInstruction *) const override
Returns true if the instruction is the special "unknown" instruction.
 
Alignment instructionAlignment() const override
Alignment for encoded machine instructions.
 
AddressSet getSuccessors(SgAsmInstruction *, bool &complete) const override
Control flow successors for a single instruction.
 
virtual std::vector< Partitioner2::FunctionPrologueMatcherPtr > functionPrologueMatchers(const Partitioner2::EnginePtr &) const override
Instruction patterns matching function prologues.
 
bool isFunctionCallFast(const std::vector< SgAsmInstruction * > &, Address *target, Address *ret) const override
Returns true if the specified basic block looks like a function call.
 
AddressSet getSuccessors(const std::vector< SgAsmInstruction * > &basicBlock, bool &complete, const MemoryMapPtr &initial_memory=MemoryMapPtr()) const override
Control flow successors for a basic block.
 
virtual InstructionSemantics::BaseSemantics::DispatcherPtr newInstructionDispatcher(const InstructionSemantics::BaseSemantics::RiscOperatorsPtr &) const override
Construct and return a new instruction dispatcher.
 
Disassembler::BasePtr newInstructionDecoder() const override
Construct and return a new instruction decoder.
 
Sawyer::Container::Interval< size_t > bytesPerInstruction() const override
Valid sizes for encoded machine instructions.
 
virtual std::vector< Partitioner2::BasicBlockCallbackPtr > basicBlockCreationHooks(const Partitioner2::EnginePtr &) const override
Architecture-specific basic block callbacks for partitioning.
 
bool isFunctionReturnFast(const std::vector< SgAsmInstruction * > &) const override
Returns true if the specified basic block looks like a function return.
 
bool isFunctionCallSlow(const std::vector< SgAsmInstruction * > &, Address *target, Address *ret) const override
Returns true if the specified basic block looks like a function call.
 
bool isControlTransfer(const SgAsmInstruction *) const override
Returns true if the specified instruction is a control transfer instruction.
 
bool terminatesBasicBlock(SgAsmInstruction *) const override
Determines whether the specified instruction normally terminates a basic block.
 
Unparser::BasePtr newUnparser() const override
Construct and return a new instruction unparser.
 
virtual const CallingConvention::Dictionary & callingConventions() const override
Property: Calling convention definitions.
 
Range of values delimited by endpoints.
 
Holds a value or nothing.
 
Base class for machine instructions.
 
std::shared_ptr< X86 > X86Ptr
Reference counted pointer for X86.
 
std::vector< DefinitionPtr > Dictionary
An ordered collection of calling convention definitions.
 
boost::shared_ptr< RiscOperators > RiscOperatorsPtr
Shared-ownership pointer to a RISC operators object.
 
boost::shared_ptr< Dispatcher > DispatcherPtr
Shared-ownership pointer to a semantics instruction dispatcher.
 
Sawyer::SharedPointer< MemoryMap > MemoryMapPtr
Reference counting pointer.
 
std::uint64_t Address
Address.
 
const char * Architecture(int64_t)
Convert Rose::BinaryAnalysis::Disassembler::Mips::Decoder::Architecture enum constant to a string.