Interface AssemblyResolvedBackfill
- All Superinterfaces:
AssemblyResolution
,Comparable<AssemblyResolution>
- All Known Implementing Classes:
DefaultAssemblyResolvedBackfill
-
Method Summary
Modifier and TypeMethodDescriptionint
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.shift
(int amt) Shift the resolution's instruction pattern to the right, if applicablesolve
(RecursiveDescentSolver solver, Map<String, Long> vals, AssemblyResolvedPatterns cur) Attempt (again) to solve the expression that generated this backfill recordMethods inherited from interface ghidra.app.plugin.assembler.sleigh.sem.AssemblyResolution
collectAllRight, getChildren, getDescription, getRight, hasChildren, isBackfill, isError, lineToString, parent, toString, toString
Methods inherited from interface java.lang.Comparable
compareTo
-
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
Description copied from interface:AssemblyResolution
Shift the resolution's instruction pattern to the right, if applicableThis also shifts any backfill and forbidden pattern records.
- Specified by:
shift
in interfaceAssemblyResolution
- Parameters:
amt
- the number of bytes to shift.- Returns:
- the result
-
solve
AssemblyResolution solve(RecursiveDescentSolver solver, Map<String, Long> vals, AssemblyResolvedPatterns cur) Attempt (again) to solve the expression that generated this backfill recordThis 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 throwNeedsBackfillException
, since that would imply the missing symbol(s) from the original attempt are still missing. Instead, the method returns an instance ofAssemblyResolvedError
.- 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
-