Package ghidra.pcode.emu.jit.var
Class JitInputVar
java.lang.Object
ghidra.pcode.emu.jit.var.AbstractJitVal
ghidra.pcode.emu.jit.var.AbstractJitVar
ghidra.pcode.emu.jit.var.AbstractJitVarnodeVar
ghidra.pcode.emu.jit.var.JitInputVar
- All Implemented Interfaces:
JitVal
,JitVar
,JitVarnodeVar
A p-code variable that is an input to a passage, i.e., there are reads possible before writes.
These only appear as options to a phi
node. They are very common, because any
block that is also a valid passage entry (which is most of them) can have an option that is
defined outside the passage. It may very well be the only option.
- Implementation Notes:
- We delay creation of passage-input variables until inter-block analysis, because the
variable must turn up missing (i.e., not be defined prior in the same block) before we
can consider it might be a passage input. We thus create a
phi
node for it and record the input as just one of many options. We had at one point "simplified" single-option phi nodes, which covered the case where the varnode is certainly a passage input, but we found it difficult in terms of bookkeeping. Also, because of our variable allocation strategy, such simplification offered no real value during code generation.
-
Nested Class Summary
Nested classes/interfaces inherited from interface ghidra.pcode.emu.jit.var.JitVal
JitVal.ValUse
-
Field Summary
Fields inherited from class ghidra.pcode.emu.jit.var.AbstractJitVarnodeVar
varnode
Fields inherited from class ghidra.pcode.emu.jit.var.AbstractJitVar
id
Fields inherited from class ghidra.pcode.emu.jit.var.AbstractJitVal
size, uses
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class ghidra.pcode.emu.jit.var.AbstractJitVarnodeVar
space, toString, varnode
Methods inherited from class ghidra.pcode.emu.jit.var.AbstractJitVar
id
Methods inherited from class ghidra.pcode.emu.jit.var.AbstractJitVal
addUse, removeUse, size, uses
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface ghidra.pcode.emu.jit.var.JitVarnodeVar
size
-
Constructor Details
-
JitInputVar
Construct a variable.- Parameters:
varnode
- the varnode- See Also:
-