Package ghidra.program.model.pcode
Class VarnodeAST
java.lang.Object
ghidra.program.model.pcode.Varnode
ghidra.program.model.pcode.VarnodeAST
This type of Varnode is a node in an Abstract Syntax Tree
It keeps track of its defining PcodeOp (in-edge) and PcodeOps which use it (out-edges)
-
Nested Class Summary
Nested classes/interfaces inherited from class ghidra.program.model.pcode.Varnode
Varnode.Join -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddDescendant(PcodeOp op) voidReplace all of parameter vn's references with thisbooleangetDef()getHigh()If there is only one PcodeOp taking this varnode as input, return it.shortGet the address where this varnode is defined or NO_ADDRESS if this varnode is an inputintinthashCode()booleanbooleanbooleanisFree()booleanisInput()booleanbooleanvoidvoidsetAddrtied(boolean val) voidvoidsetFree(boolean val) voidsetHigh(HighVariable hi) voidsetInput(boolean val) voidsetMergeGroup(short val) voidsetPersistent(boolean val) voidsetUnaffected(boolean val) Methods inherited from class ghidra.program.model.pcode.Varnode
contains, decode, decodePieces, encodePiece, encodeRaw, getAddress, getOffset, getSize, getSpace, getWordOffset, intersects, intersects, isAddress, isConstant, isContiguous, isHash, isRegister, isUnique, toString, toString, trim
-
Constructor Details
-
VarnodeAST
-
-
Method Details
-
isFree
public boolean isFree() -
isInput
public boolean isInput() -
isPersistent
public boolean isPersistent()- Overrides:
isPersistentin classVarnode- Returns:
- is persistent
-
isAddrTied
public boolean isAddrTied()- Overrides:
isAddrTiedin classVarnode- Returns:
- is mapped to an address
-
isUnaffected
public boolean isUnaffected()- Overrides:
isUnaffectedin classVarnode
-
getDef
-
getDescendants
- Overrides:
getDescendantsin classVarnode- Returns:
- iterator to all PcodeOp s that take this as input
-
getLoneDescend
Description copied from class:VarnodeIf there is only one PcodeOp taking this varnode as input, return it. Otherwise return null- Overrides:
getLoneDescendin classVarnode- Returns:
- the lone descendant PcodeOp
-
hasNoDescend
public boolean hasNoDescend()- Overrides:
hasNoDescendin classVarnode- Returns:
- false if the Varnode has a PcodeOp reading it that is part of function data-flow
-
getPCAddress
Description copied from class:VarnodeGet the address where this varnode is defined or NO_ADDRESS if this varnode is an input- Overrides:
getPCAddressin classVarnode- Returns:
- the address
-
getHigh
-
getUniqueId
public int getUniqueId() -
getMergeGroup
public short getMergeGroup()- Overrides:
getMergeGroupin classVarnode- Returns:
- the index of the group, within the high containing this, that are forced merged with this
-
setAddrtied
public void setAddrtied(boolean val) -
setInput
public void setInput(boolean val) -
setPersistent
public void setPersistent(boolean val) -
setUnaffected
public void setUnaffected(boolean val) -
setFree
public void setFree(boolean val) -
setDef
-
setMergeGroup
public void setMergeGroup(short val) -
setHigh
-
addDescendant
-
removeDescendant
-
descendReplace
Replace all of parameter vn's references with this- Parameters:
vn- Varnode whose references will get replaced
-
equals
-
hashCode
public int hashCode()
-