Enum Class StoreOpGen

java.lang.Object
java.lang.Enum<StoreOpGen>
ghidra.pcode.emu.jit.gen.op.StoreOpGen
All Implemented Interfaces:
OpGen<JitStoreOp>, Serializable, Comparable<StoreOpGen>, Constable

public enum StoreOpGen extends Enum<StoreOpGen> implements OpGen<JitStoreOp>
The generator for a store.

These ops are currently presumed to be indirect memory accesses. TODO: If we fold constants, we could convert some of these to direct.

We request a field to pre-fetch the space and emit code to load it onto the stack. We then emit code to load the offset onto the stack and convert it to a JVM long, if necessary. The varnode size is loaded by emitting an ldc. We must now emit code to load the value and convert it to a byte array. The conversion depends on the type of the value. Finally, we emit an invocation of JitBytesPcodeExecutorStatePiece.JitBytesPcodeExecutorStateSpace.write(long, byte[], int, int).