Package ghidra.pcode.emu.jit.gen.tgt

# Class JitCompiledPassage.ExitSlot

java.lang.Object
ghidra.pcode.emu.jit.gen.tgt.JitCompiledPassage.ExitSlot

Enclosing interface:
  `JitCompiledPassage`

public static class JitCompiledPassage.ExitSlot extends Object
A cache slot for a chained entry point

One of these is constructed for each target of a direct branch that exits the passage, including those of synthetic `exit` ops. For each such branch, the `JitCodeGenerator` emits code to invoke `getChained()` on the target's exit slot and to return the resulting entry point.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ExitSlot(JitPcodeThread thread, long target, RegisterValue ctx)`
  Construct an exit slot for the given target and bound thread

- ## Method Summary

  Modifier and Type
  Method
  Description
  `JitCompiledPassage.EntryPoint`
  `getChained()`
  Get the entry point for this target

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ExitSlot

    public ExitSlot(JitPcodeThread thread, long target, RegisterValue ctx)
    Construct an exit slot for the given target and bound thread
    Parameters:
      `thread` - the bound thread for the passage constructing this slot
      `target` - the offset of the target address
      `ctx` - the target decode context

- ## Method Details

  - ### getChained

    public JitCompiledPassage.EntryPoint getChained()
    Get the entry point for this target

    This may cause the emulator to translate a new passage.

    Returns:
      the entry point
    Implementation Notes:
      This will always return a non-null entry point, even if the branch target is invalid. In that case, the "passage" will consist of a single `JitPassage.DecodeErrorInstruction`, which will ensure the emulator crashes upon trying to execute at the target address.