Interface TraceInstruction

All Superinterfaces:
CodeUnit, Instruction, MemBuffer, ProcessorContext, ProcessorContextView, PropertySet, TraceCodeUnit
All Known Subinterfaces:
InstructionAdapterFromPrototype
All Known Implementing Classes:
DBTraceInstruction

public interface TraceInstruction extends TraceCodeUnit, Instruction
An instruction in a Trace
  • Method Details

    • getDefaultFallThrough

      Address getDefaultFallThrough()
      Get the default fall through for this instruction.

      This accounts for any instructions contained with delay slots.

      If the instruction is of a guest language, the returned address is mapped into the trace's base address space

      Specified by:
      getDefaultFallThrough in interface Instruction
      Returns:
      fall-through address or null if instruction has no default fall through
    • getGuestDefaultFallThrough

      Address getGuestDefaultFallThrough()
      Get the default fall-through as viewed in the instruction's native address space
      Returns:
      the default fall-through
    • getDefaultFlows

      Address[] getDefaultFlows()
      Get an array of Addresses for all default flows established by the underlying instruction prototype.

      References are ignored. Note the result may include Address.NO_ADDRESS to indicate flow to an address that could not be evaluated, e.g., to inst_next2 when the skipped instruction could not be parsed.

      If the instruction is of a guest language, the returned addresses are mapped into the trace's base address space

      Specified by:
      getDefaultFlows in interface Instruction
      Returns:
      flow addresses or null if there are no flows
    • getGuestDefaultFlows

      Address[] getGuestDefaultFlows()
      Get the default flows as viewed in the instruction's native address space
      Returns:
      the default flows
    • getNext

      TraceInstruction getNext()
      Returns the instruction following this one in address order or null if none found.

      Note that it is possible instructions are staggered vertically, in which case, multiple instructions may immediately follow this in terms of the address. The rule to resolve this ambiguity is that we only consider instructions containing the starting snap of this instruction.

      Specified by:
      getNext in interface Instruction
      Returns:
      the instruction following this one in address order or null if none found
    • getPrevious

      TraceInstruction getPrevious()
      Returns the instruction before this one in address order or null if none found.

      Note that it is possible instructions are staggered vertically, in which case, multiple instruction may immediately precede this in terms of the address. The rule to resolve this ambiguity is that we only consider instructions containing the start snap of this instruction.

      Specified by:
      getPrevious in interface Instruction
      Returns:
      the instruction before this one in address order or null if none found