Class JitBytesPcodeExecutorStatePiece
- All Implemented Interfaces:
PcodeExecutorStatePiece<byte[],byte[]>
JitDefaultBytesPcodeExecutorState
This provides access to the internals so that translated passages can pre-fetch certain objects to optimize state accesses.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class ghidra.pcode.exec.AbstractBytesPcodeExecutorStatePiece
AbstractBytesPcodeExecutorStatePiece.StateMemBufferNested classes/interfaces inherited from class ghidra.pcode.exec.AbstractLongOffsetPcodeExecutorStatePiece
AbstractLongOffsetPcodeExecutorStatePiece.AbstractSpaceMap<S>, AbstractLongOffsetPcodeExecutorStatePiece.CacheingSpaceMap<B,S>, AbstractLongOffsetPcodeExecutorStatePiece.SimpleSpaceMap<S> Nested classes/interfaces inherited from interface ghidra.pcode.exec.PcodeExecutorStatePiece
PcodeExecutorStatePiece.Reason -
Field Summary
Fields inherited from class ghidra.pcode.exec.AbstractBytesPcodeExecutorStatePiece
spaceMapFields inherited from class ghidra.pcode.exec.AbstractLongOffsetPcodeExecutorStatePiece
addressArithmetic, arithmetic, language, uniqueSpace -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Erase the entire state or piecegetForSpace(AddressSpace space, boolean toWrite) Get the internal space for the given address spaceprotected AbstractLongOffsetPcodeExecutorStatePiece.AbstractSpaceMap<JitBytesPcodeExecutorStatePiece.JitBytesPcodeExecutorStateSpace> A factory method for this state's space map.Methods inherited from class ghidra.pcode.exec.AbstractBytesPcodeExecutorStatePiece
getConcreteBuffer, getFromSpace, getRegisterValuesFromSpace, setInSpaceMethods inherited from class ghidra.pcode.exec.AbstractLongOffsetPcodeExecutorStatePiece
getAddressArithmetic, getArithmetic, getFromNullSpace, getLanguage, getRegisterValues, getUnique, getVar, getVar, setUnique, setVar, setVarMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ghidra.pcode.exec.PcodeExecutorStatePiece
checkRange, fork, getVar, getVar, getVar, quantizeOffset, setVar, setVar, setVar
-
Constructor Details
-
JitBytesPcodeExecutorStatePiece
Construct a state piece- Parameters:
language- the emulation target language
-
-
Method Details
-
newSpaceMap
protected AbstractLongOffsetPcodeExecutorStatePiece.AbstractSpaceMap<JitBytesPcodeExecutorStatePiece.JitBytesPcodeExecutorStateSpace> newSpaceMap()Description copied from class:AbstractBytesPcodeExecutorStatePieceA factory method for this state's space map.Because most of the special logic for extensions is placed in the "state space," i.e., an object assigned to a particular address space in the state's language, this factory method must provide the map to create and maintain those spaces. That map will in turn be the factory of the spaces themselves, allowing extensions to provide additional read/write logic.
- Specified by:
newSpaceMapin classAbstractBytesPcodeExecutorStatePiece<JitBytesPcodeExecutorStatePiece.JitBytesPcodeExecutorStateSpace>- Returns:
- the new space map
-
clear
public void clear()Description copied from interface:PcodeExecutorStatePieceErase the entire state or pieceThis is generally only useful when the state is itself a cache to another object. This will ensure the state is reading from that object rather than a stale cache. If this is not a cache, this could in fact clear the whole state, and the machine using it will be left in the dark.
- Specified by:
clearin interfacePcodeExecutorStatePiece<byte[],byte[]> - Overrides:
clearin classAbstractBytesPcodeExecutorStatePiece<JitBytesPcodeExecutorStatePiece.JitBytesPcodeExecutorStateSpace>
-
getForSpace
public JitBytesPcodeExecutorStatePiece.JitBytesPcodeExecutorStateSpace getForSpace(AddressSpace space, boolean toWrite) Get the internal space for the given address spaceOverridden to grant public access. The JIT-generated constructors will need to invoke this method.
- Overrides:
getForSpacein classAbstractBytesPcodeExecutorStatePiece<JitBytesPcodeExecutorStatePiece.JitBytesPcodeExecutorStateSpace>- Parameters:
space- the address spacetoWrite- in case internal spaces are generated lazily, this indicates the space must be present, because it is going to be written to.- Returns:
- the space, or
null - See Also:
-