Package ghidra.pcode.emu.jit.gen.var
Interface MemoryVarGen<V extends JitVarnodeVar>
- Type Parameters:
V
- the class of p-code variable node in the use-def graph
- All Known Implementing Classes:
DirectMemoryVarGen
,MemoryOutVarGen
The generator for memory variables.
These variables affect the state
immediately, i.e., they are
not birthed or retired as local JVM variables. The generator delegates to the appropriate
TypedAccessGen
for this variable's varnode and assigned type.
-
Nested Class Summary
Nested classes/interfaces inherited from interface ghidra.pcode.emu.jit.gen.var.VarGen
VarGen.BlockTransition
-
Method Summary
Modifier and TypeMethodDescriptiondefault void
generateValInitCode
(JitCodeGenerator gen, V v, org.objectweb.asm.MethodVisitor iv) Prepare any class-level items required to use this variabledefault JitType
generateValReadCode
(JitCodeGenerator gen, V v, JitTypeBehavior typeReq, org.objectweb.asm.MethodVisitor rv) Read the value onto the stackMethods inherited from interface ghidra.pcode.emu.jit.gen.var.VarGen
generateVarWriteCode
-
Method Details
-
generateValInitCode
Description copied from interface:ValGen
Prepare any class-level items required to use this variableFor example, if this represents a direct memory variable, then this can prepare a reference to the portion of the state involved, allowing it to access it readily.
- Specified by:
generateValInitCode
in interfaceValGen<V extends JitVarnodeVar>
- Parameters:
gen
- the code generatorv
- the valueiv
- the constructor visitor
-
generateValReadCode
default JitType generateValReadCode(JitCodeGenerator gen, V v, JitTypeBehavior typeReq, org.objectweb.asm.MethodVisitor rv) Description copied from interface:ValGen
Read the value onto the stack- Specified by:
generateValReadCode
in interfaceValGen<V extends JitVarnodeVar>
- Parameters:
gen
- the code generatorv
- the value to readtypeReq
- the required type of the valuerv
- the visitor for therun
method- Returns:
- the actual p-code type (which determines the JVM type) of the value on the stack
-