decompiler 1.0.0
Public Member Functions | Private Attributes | List of all members
ghidra::CopySignature Class Reference

A feature representing 1 or more stand-alone copies in a basic block. More...

#include <signature.hh>

Inheritance diagram for ghidra::CopySignature:
ghidra::Signature

Public Member Functions

 CopySignature (const BlockBasic *b, hashword h)
 Constructor.
 
virtual void encode (Encoder &encoder) const
 
virtual void printOrigin (ostream &s) const
 Restore this feature from the given stream.
 
- Public Member Functions inherited from ghidra::Signature
 Signature (hashword h)
 Constructor.
 
uint4 getHash (void) const
 Get the underyling 32-bit hash of the feature.
 
void print (ostream &s) const
 Print the feature hash and a brief description of this feature to the given stream.
 
int4 compare (const Signature *op2) const
 Compare two features.
 
virtual ~Signature (void)
 Destructor.
 
virtual void decode (Decoder &decoder)
 Encode this feature to the given stream.
 

Private Attributes

const BlockBasic * bl
 The basic block containing the COPY.
 

Additional Inherited Members

- Static Public Member Functions inherited from ghidra::Signature
static bool comparePtr (Signature *a, Signature *b)
 Compare two Signature pointers via their underlying hash values.
 

Detailed Description

A feature representing 1 or more stand-alone copies in a basic block.

A COPY operation is considered stand-alone if either a constant or a function input is copied into a location that is then not read directly by the function. These COPYs are incorporated into a single feature, which encodes the number and type of COPYs but does not encode the order in which they occur within the block.

Member Function Documentation

◆ encode()

void ghidra::CopySignature::encode ( Encoder &  encoder) const
virtual

The hash value is encoded to the stream, along with any descriptive information about how the feature was formed.

Parameters
encoderis the stream encoder

Reimplemented from ghidra::Signature.

References bl, ghidra::Encoder::closeElement(), ghidra::Signature::getHash(), ghidra::FlowBlock::getIndex(), ghidra::Encoder::openElement(), ghidra::Encoder::writeSignedInteger(), and ghidra::Encoder::writeUnsignedInteger().

◆ printOrigin()

void ghidra::CopySignature::printOrigin ( ostream &  s) const
virtual

Restore this feature from the given stream.

Print a brief description of this feature to the given stream

Reimplemented from ghidra::Signature.

References bl, and ghidra::BlockBasic::printHeader().


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