Interface JitPassage.IndBranch

All Superinterfaces:
JitPassage.Branch
All Known Implementing Classes:
JitPassage.RIndBranch, JitPassage.SIndBranch
Enclosing class:
JitPassage

public static interface JitPassage.IndBranch extends JitPassage.Branch
A branch to a dynamic address

When execution encounters this branch, the run method will set the emulator's program counter to the computed address and its context to flowCtx(), then return the appropriate entry point for further execution.

TODO: Some analysis may be possible to narrow the possible addresses to a known few and then treat this as several JitPassage.IntBranches; however, I worry this is too expensive for what it gets us. This will be necessary if we are to JIT, e.g., a switch table.

  • Method Details

    • flowCtx

      RegisterValue flowCtx()
      The decode context after the branch is taken
      Returns:
      the context