Package ghidra.pcode.emu.jit.var
Interface JitVal
- All Known Subinterfaces:
JitMemoryVar,JitOutVar,JitVar,JitVarnodeVar
- All Known Implementing Classes:
AbstractJitOutVar,AbstractJitVal,AbstractJitVar,AbstractJitVarnodeVar,JitConstVal,JitDirectMemoryVar,JitFailVal,JitIndirectMemoryVar,JitInputVar,JitLocalOutVar,JitMemoryOutVar,JitMissingVar
public interface JitVal
A p-code value use-def node.
For a table of value/variable node classes and generators, see ValGen.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final recordThe use of a value node by an operator node. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd a use.static JitConstValconstant(int size, BigInteger value) Create a constant value.voidRemove a use.intsize()The size in bytes.uses()The list of uses.
-
Method Details
-
constant
Create a constant value.- Parameters:
size- the size in bytesvalue- the value- Returns:
- the value node
-
size
int size()The size in bytes.- Returns:
- the size
-
uses
List<JitVal.ValUse> uses()The list of uses.- Returns:
- the uses
-
addUse
Add a use.In most cases, uses should be final, once this value node has been entered into the use-def graph. An exception deals with
phinodes, as this analysis occurs after each intra-block portion of the graph has been constructed. During inter-block analysis, additional uses will get recorded. Even further uses may be recorded udingop-useanalysis, since it may generate morephinodes.- Parameters:
op- the operator node using this oneposition- the position of this value in the operator's input operands
-
removeUse
Remove a use.- Parameters:
op- as inaddUse(JitOp, int)position- as inaddUse(JitOp, int)- See Also:
-