1#ifndef ROSE_SAGE_INTERFACE_ASM 
    2#define ROSE_SAGE_INTERFACE_ASM 
    3#include <featureTests.h> 
    4#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
   13     void addComment(
SgAsmStatement* stmt, 
const std::string & input_string );
 
   29     std::string 
generateUniqueName ( 
size_t value, std::map<size_t,int> & usedOffsets, 
size_t & counter );
 
   38     typedef bool (*EquivalenceTestFunctionType) (
SgNode* x, 
SgNode* y);
 
   44     std::vector<SgNode*> flattenAST ( 
SgNode* node );
 
   45     std::vector<SgNode*> matchAST ( 
SgNode* node, std::vector<SgNode*> & listOfNodes, EquivalenceTestFunctionType equivalenceTest );
 
   49     std::vector<SgNode*> find ( 
SgNode* astNode, 
SgNode* target, EquivalenceTestFunctionType equivalenceTest );
 
   56     bool isNOP ( 
const std::vector<SgAsmInstruction*> & asmInstructionList );
 
Base class for ELF file sections.
Represents a synthesized function.
Base class for machine instructions.
Represents an interpretation of a binary container.
Base class for all binary analysis IR nodes.
Base class for statement-like subclasses.
This class represents the base class for all IR nodes within Sage III.
This class represents a source project, with a list of SgFile objects and global information about th...
X86InstructionKind
List of all x86 instructions known to the ROSE disassembler/assembler.
Functions that are useful when operating on the AST.
void insertInstruction(SgAsmInstruction *targetInstruction, SgAsmInstruction *newInstruction, bool insertBefore)
Support for insertion of instruction relative to a target instruction.
bool isNOP(SgAsmInstruction *asmInstruction)
Test an instruction for if it has no side-effect to the state (is so then it is a NOP)....
SgAsmBlock * getAsmBlock(SgAsmInstruction *asmInstruction)
Traverses AST backwards up the tree along the "parent" edges to the SgAsmBlock.
std::string generateUniqueName(const SgNode *node, bool ignoreDifferenceBetweenDefiningAndNondefiningDeclarations)
Generate unique name from C and C++ constructs. The name may contain space.
std::vector< std::vector< SgAsmInstruction * > > find_NOP_sequences(SgAsmBlock *asmBlock)
find sequences of NOP instructions in a SgAsmBlock
SgAsmInterpretation * getAsmInterpretation(SgAsmNode *asmNode)
Traverses AST backwards up the tree along the "parent" edges to the SgAsmInterpretation.
SgAsmFunction * getAsmFunction(SgAsmInstruction *asmInstruction)
Traverses AST backwards up the tree along the "parent" edges to the SgAsmFunction.
void removeInstruction(SgAsmStatement *instruction)
Remove a instruction.
void insertInstructionBefore(SgAsmInstruction *targetInstruction, SgAsmInstruction *newInstruction)
Insert a instruction before a target instruction.