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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addDescendant
(PcodeOp op) void
Replace all of parameter vn's references with thisboolean
getDef()
getHigh()
If there is only one PcodeOp taking this varnode as input, return it.short
Get the address where this varnode is defined or NO_ADDRESS if this varnode is an inputint
int
hashCode()
boolean
boolean
boolean
isFree()
boolean
isInput()
boolean
boolean
void
void
setAddrtied
(boolean val) void
void
setFree
(boolean val) void
setHigh
(HighVariable hi) void
setInput
(boolean val) void
setMergeGroup
(short val) void
setPersistent
(boolean val) void
setUnaffected
(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, isHash, isRegister, isUnique, toString, toString, trim
-
Constructor Details
-
VarnodeAST
-
-
Method Details
-
isFree
public boolean isFree() -
isInput
public boolean isInput() -
isPersistent
public boolean isPersistent()- Overrides:
isPersistent
in classVarnode
- Returns:
- is persistent
-
isAddrTied
public boolean isAddrTied()- Overrides:
isAddrTied
in classVarnode
- Returns:
- is mapped to an address
-
isUnaffected
public boolean isUnaffected()- Overrides:
isUnaffected
in classVarnode
-
getDef
-
getDescendants
- Overrides:
getDescendants
in classVarnode
- Returns:
- iterator to all PcodeOp s that take this as input
-
getLoneDescend
Description copied from class:Varnode
If there is only one PcodeOp taking this varnode as input, return it. Otherwise return null- Overrides:
getLoneDescend
in classVarnode
- Returns:
- the lone descendant PcodeOp
-
hasNoDescend
public boolean hasNoDescend()- Overrides:
hasNoDescend
in classVarnode
- Returns:
- false if the Varnode has a PcodeOp reading it that is part of function data-flow
-
getPCAddress
Description copied from class:Varnode
Get the address where this varnode is defined or NO_ADDRESS if this varnode is an input- Overrides:
getPCAddress
in classVarnode
- Returns:
- the address
-
getHigh
-
getUniqueId
public int getUniqueId() -
getMergeGroup
public short getMergeGroup()- Overrides:
getMergeGroup
in 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()
-