Interface AssemblyResolvedBackfill

All Superinterfaces:
AssemblyResolution, Comparable<AssemblyResolution>
All Known Implementing Classes:
DefaultAssemblyResolvedBackfill

public interface AssemblyResolvedBackfill extends AssemblyResolution
  • Method Details

    • getInstructionLength

      int getInstructionLength()
      Get the expected length of the instruction portion of the future encoding This is used to make sure that operands following a to-be-determined encoding are placed properly. Even though the actual encoding cannot yet be determined, its length can.
      Returns:
      the total expected length (including the offset)
    • shift

      AssemblyResolvedBackfill shift(int amt)
      Description copied from interface: AssemblyResolution
      Shift the resolution's instruction pattern to the right, if applicable

      This also shifts any backfill and forbidden pattern records.

      Specified by:
      shift in interface AssemblyResolution
      Parameters:
      amt - the number of bytes to shift.
      Returns:
      the result
    • solve

      Attempt (again) to solve the expression that generated this backfill record

      This will attempt to solve the same expression and goal again, using the same parameters as were given to the original attempt, except with additional defined symbols. Typically, the symbol that required backfill is inst_next. This method will not throw NeedsBackfillException, since that would imply the missing symbol(s) from the original attempt are still missing. Instead, the method returns an instance of AssemblyResolvedError.

      Parameters:
      solver - a solver, usually the same as the one from the original attempt.
      vals - the defined symbols, usually the same, but with the missing symbol(s).
      Returns:
      the solution result