ROSE 0.11.145.192
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
Rose::BinaryAnalysis::Unparser::Mips Class Reference

Description

Unparser for the MIPS instruction set.

Definition at line 15 of file Unparser/Mips.h.

#include <Rose/BinaryAnalysis/Unparser/Mips.h>

Inheritance diagram for Rose::BinaryAnalysis::Unparser::Mips:
Inheritance graph
[legend]
Collaboration diagram for Rose::BinaryAnalysis::Unparser::Mips:
Collaboration graph
[legend]

Public Member Functions

Ptr copy () const override
 
const MipsSettingssettings () const override
 Property: Settings associated with this unparser.
 
MipsSettingssettings () override
 Property: Settings associated with this unparser.
 
- Public Member Functions inherited from Rose::BinaryAnalysis::Unparser::Base
Architecture::BaseConstPtr architecture () const
 Property: Architecture.
 
virtual void initializeState (State &) const
 Finish initializing the unparser state.
 
virtual void updateIntraFunctionArrows (State &) const
 Calculate intra-function arrows.
 
void settings (const Settings &s)
 Property: Settings associated with this unparser.
 
Ptr nextUnparser () const
 Property: Next parser in chain.
 
void nextUnparser (Ptr next)
 Property: Next parser in chain.
 
void operator() (std::ostream &, const Partitioner2::PartitionerConstPtr &) const
 Emit the entity to an output stream.
 
void operator() (std::ostream &, const Partitioner2::PartitionerConstPtr &, SgAsmInstruction *) const
 Emit the entity to an output stream.
 
void operator() (std::ostream &, const Partitioner2::PartitionerConstPtr &, SgAsmExpression *) const
 Emit the entity to an output stream.
 
void operator() (std::ostream &, const Partitioner2::PartitionerConstPtr &, const Partitioner2::BasicBlockPtr &) const
 Emit the entity to an output stream.
 
void operator() (std::ostream &, const Partitioner2::PartitionerConstPtr &, const Partitioner2::DataBlockPtr &) const
 Emit the entity to an output stream.
 
void operator() (std::ostream &, const Partitioner2::PartitionerConstPtr &, const Partitioner2::FunctionPtr &) const
 Emit the entity to an output stream.
 
void operator() (std::ostream &, SgAsmInstruction *) const
 Emit the entity to an output stream.
 
std::string operator() (const Partitioner2::PartitionerConstPtr &, const Progress::Ptr &=Progress::Ptr()) const
 Emit the entity to a string.
 
std::string operator() (const Partitioner2::PartitionerConstPtr &, SgAsmInstruction *) const
 Emit the entity to a string.
 
std::string operator() (const Partitioner2::PartitionerConstPtr &, SgAsmExpression *) const
 Emit the entity to a string.
 
std::string operator() (const Partitioner2::PartitionerConstPtr &, const Partitioner2::BasicBlockPtr &) const
 Emit the entity to a string.
 
std::string operator() (const Partitioner2::PartitionerConstPtr &, const Partitioner2::DataBlockPtr &) const
 Emit the entity to a string.
 
std::string operator() (const Partitioner2::PartitionerConstPtr &, const Partitioner2::FunctionPtr &) const
 Emit the entity to a string.
 
std::string operator() (SgAsmInstruction *) const
 Emit the entity to a string.
 
void unparse (std::ostream &, const Partitioner2::PartitionerConstPtr &, const Progress::Ptr &=Progress::Ptr()) const
 High-level unparsing function.
 
void unparse (std::ostream &, const Partitioner2::PartitionerConstPtr &, SgAsmInstruction *) const
 High-level unparsing function.
 
void unparse (std::ostream &, const Partitioner2::PartitionerConstPtr &, SgAsmExpression *) const
 High-level unparsing function.
 
void unparse (std::ostream &, const Partitioner2::PartitionerConstPtr &, const Partitioner2::BasicBlockPtr &) const
 High-level unparsing function.
 
void unparse (std::ostream &, const Partitioner2::PartitionerConstPtr &, const Partitioner2::DataBlockPtr &) const
 High-level unparsing function.
 
void unparse (std::ostream &, const Partitioner2::PartitionerConstPtr &, const Partitioner2::FunctionPtr &) const
 High-level unparsing function.
 
void unparse (std::ostream &, SgAsmInstruction *) const
 High-level unparsing function.
 
void unparse (std::ostream &, SgAsmExpression *) const
 High-level unparsing function.
 
std::string unparse (const Partitioner2::PartitionerConstPtr &, const Progress::Ptr &=Progress::Ptr()) const
 High-level unparsing function.
 
std::string unparse (const Partitioner2::PartitionerConstPtr &, SgAsmInstruction *) const
 High-level unparsing function.
 
std::string unparse (const Partitioner2::PartitionerConstPtr &, SgAsmExpression *) const
 High-level unparsing function.
 
std::string unparse (const Partitioner2::PartitionerConstPtr &, const Partitioner2::BasicBlockPtr &) const
 High-level unparsing function.
 
std::string unparse (const Partitioner2::PartitionerConstPtr &, const Partitioner2::DataBlockPtr &) const
 High-level unparsing function.
 
std::string unparse (const Partitioner2::PartitionerConstPtr &, const Partitioner2::FunctionPtr &) const
 High-level unparsing function.
 
std::string unparse (SgAsmInstruction *) const
 High-level unparsing function.
 
std::string unparse (SgAsmExpression *) const
 High-level unparsing function.
 
virtual void emitFunction (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitFunctionPrologue (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitFunctionBody (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitFunctionEpilogue (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitFunctionSourceLocation (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitFunctionReasons (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitFunctionCallers (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitFunctionCallees (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitFunctionComment (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitFunctionStackDelta (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitFunctionCallingConvention (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitFunctionNoopAnalysis (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitFunctionMayReturn (std::ostream &, const Partitioner2::FunctionPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitDataBlockSourceLocation (std::ostream &, const Partitioner2::DataBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitDataBlock (std::ostream &, const Partitioner2::DataBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitDataBlockPrologue (std::ostream &, const Partitioner2::DataBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitDataBlockBody (std::ostream &, const Partitioner2::DataBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitDataBlockEpilogue (std::ostream &, const Partitioner2::DataBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitBasicBlock (std::ostream &, const Partitioner2::BasicBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitBasicBlockPrologue (std::ostream &, const Partitioner2::BasicBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitBasicBlockBody (std::ostream &, const Partitioner2::BasicBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitBasicBlockEpilogue (std::ostream &, const Partitioner2::BasicBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitBasicBlockSourceLocation (std::ostream &, const Partitioner2::BasicBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitBasicBlockComment (std::ostream &, const Partitioner2::BasicBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitBasicBlockSharing (std::ostream &, const Partitioner2::BasicBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitBasicBlockPredecessors (std::ostream &, const Partitioner2::BasicBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitBasicBlockSuccessors (std::ostream &, const Partitioner2::BasicBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitBasicBlockReachability (std::ostream &, const Partitioner2::BasicBlockPtr &, State &) const
 Mid-level unparser function.
 
virtual void emitInstruction (std::ostream &, SgAsmInstruction *, State &) const
 Mid-level unparser function.
 
virtual void emitInstructionPrologue (std::ostream &, SgAsmInstruction *, State &) const
 Mid-level unparser function.
 
virtual void emitInstructionBody (std::ostream &, SgAsmInstruction *, State &) const
 Mid-level unparser function.
 
virtual void emitInstructionEpilogue (std::ostream &, SgAsmInstruction *, State &) const
 Mid-level unparser function.
 
virtual void emitInstructionAddress (std::ostream &, SgAsmInstruction *, State &) const
 Mid-level unparser function.
 
virtual void emitInstructionBytes (std::ostream &, SgAsmInstruction *, State &) const
 Mid-level unparser function.
 
virtual void emitInstructionStackDelta (std::ostream &, SgAsmInstruction *, State &) const
 Mid-level unparser function.
 
virtual void emitInstructionFrameDelta (std::ostream &, SgAsmInstruction *, State &) const
 Mid-level unparser function.
 
virtual void emitInstructionMnemonic (std::ostream &, SgAsmInstruction *, State &) const
 Mid-level unparser function.
 
virtual void emitInstructionOperands (std::ostream &, SgAsmInstruction *, State &) const
 Mid-level unparser function.
 
virtual void emitInstructionComment (std::ostream &, SgAsmInstruction *, State &) const
 Mid-level unparser function.
 
virtual void emitInstructionSemantics (std::ostream &, SgAsmInstruction *, State &) const
 Mid-level unparser function.
 
virtual void emitOperand (std::ostream &, SgAsmExpression *, State &) const
 Mid-level unparser function.
 
virtual void emitOperandPrologue (std::ostream &, SgAsmExpression *, State &) const
 Mid-level unparser function.
 
virtual void emitOperandBody (std::ostream &, SgAsmExpression *, State &) const
 Mid-level unparser function.
 
virtual void emitOperandEpilogue (std::ostream &, SgAsmExpression *, State &) const
 Mid-level unparser function.
 
virtual void emitExpression (std::ostream &, SgAsmExpression *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinaryAdd (std::ostream &, SgAsmBinaryAdd *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinaryAsr (std::ostream &, SgAsmBinaryAsr *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinaryConcat (std::ostream &, SgAsmBinaryConcat *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinaryDivide (std::ostream &, SgAsmBinaryDivide *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinaryLsl (std::ostream &, SgAsmBinaryLsl *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinaryLsr (std::ostream &, SgAsmBinaryLsr *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinaryMsl (std::ostream &, SgAsmBinaryMsl *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinaryMultiply (std::ostream &, SgAsmBinaryMultiply *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinaryMod (std::ostream &, SgAsmBinaryMod *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinaryPreupdate (std::ostream &, SgAsmBinaryPreupdate *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinaryPostupdate (std::ostream &, SgAsmBinaryPostupdate *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinaryRor (std::ostream &, SgAsmBinaryRor *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitBinarySubtract (std::ostream &, SgAsmBinarySubtract *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitByteOrder (std::ostream &, SgAsmByteOrder *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitDirectRegisterExpression (std::ostream &, SgAsmDirectRegisterExpression *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitExprListExp (std::ostream &, SgAsmExprListExp *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitFloatValueExpression (std::ostream &, SgAsmFloatValueExpression *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitIndirectRegisterExpression (std::ostream &, SgAsmIndirectRegisterExpression *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitIntegerValueExpression (std::ostream &, SgAsmIntegerValueExpression *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitMemoryReferenceExpression (std::ostream &, SgAsmMemoryReferenceExpression *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitRegisterNames (std::ostream &, SgAsmRegisterNames *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitRiscOperation (std::ostream &, SgAsmRiscOperation *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitStackExpression (std::ostream &, SgAsmStackExpression *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitUnaryMinus (std::ostream &, SgAsmUnaryMinus *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitUnaryPlus (std::ostream &, SgAsmUnaryPlus *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitUnarySignedExtend (std::ostream &, SgAsmUnarySignedExtend *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitUnaryTruncate (std::ostream &, SgAsmUnaryTruncate *, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitUnaryUnsignedExtend (std::ostream &, SgAsmUnaryUnsignedExtend *, State &) const
 Mid-level unparser function.
 
virtual void emitRegister (std::ostream &, RegisterDescriptor, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitUnsignedInteger (std::ostream &, const Sawyer::Container::BitVector &, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitSignedInteger (std::ostream &, const Sawyer::Container::BitVector &, State &) const
 Mid-level unparser function.
 
virtual std::vector< std::string > emitInteger (std::ostream &, const Sawyer::Container::BitVector &, State &, bool isSigned) const
 Mid-level unparser function.
 
virtual bool emitAddress (std::ostream &, rose_addr_t, State &, bool always=true) const
 Mid-level unparser function.
 
virtual bool emitAddress (std::ostream &, const Sawyer::Container::BitVector &, State &, bool always=true) const
 Mid-level unparser function.
 
virtual void emitCommentBlock (std::ostream &, const std::string &, State &, const std::string &prefix=";;; ") const
 Mid-level unparser function.
 
virtual void emitTypeName (std::ostream &, SgAsmType *, State &) const
 Mid-level unparser function.
 
virtual void emitLinePrefix (std::ostream &, State &) const
 Mid-level unparser function.
 
- Public Member Functions inherited from Sawyer::SharedObject
 SharedObject ()
 Default constructor.
 
 SharedObject (const SharedObject &)
 Copy constructor.
 
virtual ~SharedObject ()
 Virtual destructor.
 
SharedObjectoperator= (const SharedObject &)
 Assignment.
 

Static Public Member Functions

static Ptr instance (const Architecture::BaseConstPtr &, const MipsSettings &=MipsSettings())
 
- Static Public Member Functions inherited from Rose::BinaryAnalysis::Unparser::Base
static std::string leftJustify (const std::string &, size_t nchars)
 Render a string left justified.
 
static std::string juxtaposeColumns (const std::vector< std::string > &content, const std::vector< size_t > &minWidths, const std::vector< std::pair< std::string, std::string > > &colorEscapes, const std::string &columnSeparator=" ")
 Render a table row.
 
static bool ascendingSourceAddress (Partitioner2::ControlFlowGraph::ConstEdgeIterator a, Partitioner2::ControlFlowGraph::ConstEdgeIterator b)
 Return true if edges are in order by source address.
 
static bool ascendingTargetAddress (Partitioner2::ControlFlowGraph::ConstEdgeIterator a, Partitioner2::ControlFlowGraph::ConstEdgeIterator b)
 Return true if edges are in order by target address.
 
static std::vector< Partitioner2::ControlFlowGraph::ConstEdgeIterator > orderedBlockPredecessors (const Partitioner2::PartitionerConstPtr &, const Partitioner2::BasicBlockPtr &)
 Ordered incoming CFG edges.
 
static std::vector< Partitioner2::ControlFlowGraph::ConstEdgeIterator > orderedBlockSuccessors (const Partitioner2::PartitionerConstPtr &, const Partitioner2::BasicBlockPtr &)
 Ordered outgoing CFG edges.
 

Protected Member Functions

 Mips (const Architecture::BaseConstPtr &, const MipsSettings &)
 
- Protected Member Functions inherited from Rose::BinaryAnalysis::Unparser::Base
 Base (const Architecture::BaseConstPtr &)
 
 Base (const Ptr &nextUnparser)
 

Additional Inherited Members

- Public Types inherited from Rose::BinaryAnalysis::Unparser::Base
typedef Sawyer::SharedPointer< BasePtr
 

Member Function Documentation

◆ copy()

Ptr Rose::BinaryAnalysis::Unparser::Mips::copy ( ) const
overridevirtual

◆ settings() [1/2]

const MipsSettings & Rose::BinaryAnalysis::Unparser::Mips::settings ( ) const
inlineoverridevirtual

Property: Settings associated with this unparser.

Most of these settings can also be configured from the command-line. They control features of the unparser directly without the programmer having to invervene by creating a subclss or chaining a new parser. Most of the switches simply turn things on and off.

Copying an unparser also copies its settings.

Implements Rose::BinaryAnalysis::Unparser::Base.

Definition at line 29 of file Unparser/Mips.h.

◆ settings() [2/2]

MipsSettings & Rose::BinaryAnalysis::Unparser::Mips::settings ( )
inlineoverridevirtual

Property: Settings associated with this unparser.

Most of these settings can also be configured from the command-line. They control features of the unparser directly without the programmer having to invervene by creating a subclss or chaining a new parser. Most of the switches simply turn things on and off.

Copying an unparser also copies its settings.

Implements Rose::BinaryAnalysis::Unparser::Base.

Definition at line 30 of file Unparser/Mips.h.


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