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
,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 record
The use of a value node by an operator node. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a use.static JitConstVal
constant
(int size, BigInteger value) Create a constant value.void
Remove a use.int
size()
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
phi
nodes, 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-use
analysis, since it may generate morephi
nodes.- 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:
-