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.StateMemBuffer
Nested 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
spaceMap
Fields inherited from class ghidra.pcode.exec.AbstractLongOffsetPcodeExecutorStatePiece
addressArithmetic, arithmetic, language, uniqueSpace
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
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, setInSpace
Methods inherited from class ghidra.pcode.exec.AbstractLongOffsetPcodeExecutorStatePiece
getAddressArithmetic, getArithmetic, getFromNullSpace, getLanguage, getRegisterValues, getUnique, getVar, getVar, setUnique, setVar, setVar
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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:AbstractBytesPcodeExecutorStatePiece
A 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:
newSpaceMap
in classAbstractBytesPcodeExecutorStatePiece<JitBytesPcodeExecutorStatePiece.JitBytesPcodeExecutorStateSpace>
- Returns:
- the new space map
-
clear
public void clear()Description copied from interface:PcodeExecutorStatePiece
Erase 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:
clear
in interfacePcodeExecutorStatePiece<byte[],
byte[]> - Overrides:
clear
in 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:
getForSpace
in 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:
-