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 voidgenerateValInitCode(JitCodeGenerator gen, V v, org.objectweb.asm.MethodVisitor iv) Prepare any class-level items required to use this variabledefault JitTypegenerateValReadCode(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:ValGenPrepare 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:
generateValInitCodein 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:ValGenRead the value onto the stack- Specified by:
generateValReadCodein interfaceValGen<V extends JitVarnodeVar>- Parameters:
gen- the code generatorv- the value to readtypeReq- the required type of the valuerv- the visitor for therunmethod- Returns:
- the actual p-code type (which determines the JVM type) of the value on the stack
-