Package ghidra.program.disassemble

# Class ReDisassembler.ReDisBlock

java.lang.Object
ghidra.program.disassemble.ReDisassembler.ReDisBlock

Enclosing class:
  `ReDisassembler`

protected class ReDisassembler.ReDisBlock extends Object

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final InstructionBlock`
  `block`
  `protected final DisassemblerContextImpl`
  `disassemblerContext`
  `protected final ghidra.program.disassemble.ReDisassembler.Flow`
  `entry`
  `protected PseudoInstruction`
  `lastInstruction`
  `protected final ReDisassembler.ReDisState`
  `state`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ReDisBlock(ReDisassembler.ReDisState state, ghidra.program.disassemble.ReDisassembler.Flow entry)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected PseudoInstruction`
  `createInstruction(Address address, InstructionPrototype prototype, MemBuffer memBuffer, ProcessorContext ctx)`
  `protected InstructionBlock`
  `disassembleBlock()`
  `protected Instruction`
  `nextInstruction(ghidra.program.disassemble.ReDisassembler.Flow flow, boolean isInDelaySlot)`
  `protected ghidra.program.disassemble.ReDisassembler.Flow`
  `nextInstructionsWithDelays(ghidra.program.disassemble.ReDisassembler.Flow flow)`
  Parse the next instructions, including delay-slotted ones
  `protected void`
  `processInstruction(Instruction instruction)`
  `protected void`
  `recordContext(Address to)`
  `protected boolean`
  `shouldDisassemble(ghidra.program.disassemble.ReDisassembler.Flow flow)`

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

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

- ## Field Details

  - ### state

    protected final ReDisassembler.ReDisState state

  - ### entry

    protected final ghidra.program.disassemble.ReDisassembler.Flow entry

  - ### block

    protected final InstructionBlock block

  - ### disassemblerContext

    protected final DisassemblerContextImpl disassemblerContext

  - ### lastInstruction

    protected PseudoInstruction lastInstruction

- ## Constructor Details

  - ### ReDisBlock

    public ReDisBlock(ReDisassembler.ReDisState state, ghidra.program.disassemble.ReDisassembler.Flow entry)

- ## Method Details

  - ### recordContext

    protected void recordContext(Address to)

  - ### createInstruction

    protected PseudoInstruction createInstruction(Address address, InstructionPrototype prototype, MemBuffer memBuffer, ProcessorContext ctx) throws AddressOverflowException
    Throws:
      `AddressOverflowException`

  - ### shouldDisassemble

    protected boolean shouldDisassemble(ghidra.program.disassemble.ReDisassembler.Flow flow)

  - ### nextInstruction

    protected Instruction nextInstruction(ghidra.program.disassemble.ReDisassembler.Flow flow, boolean isInDelaySlot) throws CancelledException
    Throws:
      `CancelledException`

  - ### nextInstructionsWithDelays

    protected ghidra.program.disassemble.ReDisassembler.Flow nextInstructionsWithDelays(ghidra.program.disassemble.ReDisassembler.Flow flow) throws CancelledException
    Parse the next instructions, including delay-slotted ones
    Parameters:
      `flow` - the `ReDisassembler.Flow`
    Returns:
      the if the first instruction has fall-through, the flow out from the last instruction parsed. Without delay slots, the first instruction is the last instruction.
    Throws:
      `CancelledException`

  - ### processInstruction

    protected void processInstruction(Instruction instruction)

  - ### disassembleBlock

    protected InstructionBlock disassembleBlock() throws CancelledException
    Throws:
      `CancelledException`