Package ghidra.pcode.emu.jit

# Class JitThreadBytesPcodeExecutorState

java.lang.Object
ghidra.pcode.emu.ThreadPcodeExecutorState<byte[]>
ghidra.pcode.emu.jit.JitThreadBytesPcodeExecutorState

All Implemented Interfaces:
  `JitBytesPcodeExecutorState`, `PcodeExecutorState<byte[]>`, `PcodeExecutorStatePiece<byte[],byte[]>`

public class JitThreadBytesPcodeExecutorState extends ThreadPcodeExecutorState<byte[]> implements JitBytesPcodeExecutorState
The equivalent to `ThreadPcodeExecutorState` that multiplexes shared and local state for the JIT-accelerated p-code emulator

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface ghidra.pcode.exec.PcodeExecutorStatePiece

  `PcodeExecutorStatePiece.Reason`

- ## Field Summary

  ### Fields inherited from class ghidra.pcode.emu.ThreadPcodeExecutorState

  `arithmetic, localState, sharedState`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JitThreadBytesPcodeExecutorState(JitDefaultBytesPcodeExecutorState sharedState, JitDefaultBytesPcodeExecutorState localState)`
  Construct a new thread state

- ## Method Summary

  Modifier and Type
  Method
  Description
  `JitBytesPcodeExecutorStatePiece.JitBytesPcodeExecutorStateSpace`
  `getForSpace(AddressSpace space)`
  For generated code to side-step the space lookup
  `JitDefaultBytesPcodeExecutorState`
  `getLocalState()`
  Get the thread-local state
  `JitDefaultBytesPcodeExecutorState`
  `getSharedState()`
  Get the shared state

  ### Methods inherited from class ghidra.pcode.emu.ThreadPcodeExecutorState

  `clear, fork, getArithmetic, getConcreteBuffer, getLanguage, getRegisterValues, getVar, getVar, getVarInternal, getVarInternal, isThreadLocalSpace, setVar, setVar, setVarInternal, setVarInternal, streamPieces`

  ### 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.PcodeExecutorState

  `fork, getAddressArithmetic, paired`

  ### Methods inherited from interface ghidra.pcode.exec.PcodeExecutorStatePiece

  `checkRange, clear, getArithmetic, getConcreteBuffer, getLanguage, getNextEntryInternal, getNextEntryInternal, getRegisterValues, getVar, getVar, getVar, getVar, getVar, getVarInternal, getVarInternal, inspectBigInteger, inspectByte, inspectConcrete, inspectInt, inspectLong, inspectRegisterValue, inspectShort, quantizeOffset, setBigInteger, setByte, setConcrete, setInt, setLong, setRegisterValue, setRegisterValue, setShort, setVar, setVar, setVar, setVar, setVar, setVarInternal, setVarInternal, streamPieces`

- ## Constructor Details

  - ### JitThreadBytesPcodeExecutorState

    public JitThreadBytesPcodeExecutorState(JitDefaultBytesPcodeExecutorState sharedState, JitDefaultBytesPcodeExecutorState localState)
    Construct a new thread state
    Parameters:
      `sharedState` - the shared portion (e.g., ram space)
      `localState` - the local portion (i.e., register, unique spaces)

- ## Method Details

  - ### getSharedState

    public JitDefaultBytesPcodeExecutorState getSharedState()
    Description copied from class: `ThreadPcodeExecutorState`
    Get the shared state
    Overrides:
      `getSharedState` in class `ThreadPcodeExecutorState<byte[]>`
    Returns:
      the shared state

  - ### getLocalState

    public JitDefaultBytesPcodeExecutorState getLocalState()
    Description copied from class: `ThreadPcodeExecutorState`
    Get the thread-local state
    Overrides:
      `getLocalState` in class `ThreadPcodeExecutorState<byte[]>`
    Returns:
      the thread-local state

  - ### getForSpace

    public JitBytesPcodeExecutorStatePiece.JitBytesPcodeExecutorStateSpace getForSpace(AddressSpace space)
    Description copied from interface: `JitBytesPcodeExecutorState`
    For generated code to side-step the space lookup
    Specified by:
      `getForSpace` in interface `JitBytesPcodeExecutorState`
    Parameters:
      `space` - the address space
    Returns:
      the state space