Class RightShiftExpressionSolver
java.lang.Object
ghidra.app.plugin.assembler.sleigh.expr.AbstractExpressionSolver<RightShiftExpression>
ghidra.app.plugin.assembler.sleigh.expr.AbstractBinaryExpressionSolver<RightShiftExpression>
ghidra.app.plugin.assembler.sleigh.expr.RightShiftExpressionSolver
public class RightShiftExpressionSolver
extends AbstractBinaryExpressionSolver<RightShiftExpression>
Solves expressions of the form
A >> B
-
Field Summary
Fields inherited from class ghidra.app.plugin.assembler.sleigh.expr.AbstractExpressionSolver
dbg, solver
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncompute
(MaskedLong lval, MaskedLong rval) Compute the result of applying the operator to the two given valuescomputeLeft
(MaskedLong rval, MaskedLong goal) Compute the left-hand-side value given that the result and the right are knowncomputeRight
(MaskedLong lval, MaskedLong goal) Compute the right-hand-side value given that the result and the left are knownprotected AssemblyResolution
solveTwoSided
(AbstractAssemblyResolutionFactory<?, ?> factory, RightShiftExpression exp, MaskedLong goal, Map<String, Long> vals, AssemblyResolvedPatterns cur, Set<SolverHint> hints, String description) Methods inherited from class ghidra.app.plugin.assembler.sleigh.expr.AbstractBinaryExpressionSolver
getInstructionLength, getValue, solve, solveLeftSide, solveRightSide, valueForResolution
Methods inherited from class ghidra.app.plugin.assembler.sleigh.expr.AbstractExpressionSolver
register
-
Constructor Details
-
RightShiftExpressionSolver
public RightShiftExpressionSolver()
-
-
Method Details
-
compute
Description copied from class:AbstractBinaryExpressionSolver
Compute the result of applying the operator to the two given values- Specified by:
compute
in classAbstractBinaryExpressionSolver<RightShiftExpression>
- Parameters:
lval
- the left-hand-side valuerval
- the right-hand-side value- Returns:
- the result
-
computeLeft
Description copied from class:AbstractBinaryExpressionSolver
Compute the left-hand-side value given that the result and the right are known- Specified by:
computeLeft
in classAbstractBinaryExpressionSolver<RightShiftExpression>
- Parameters:
rval
- the right-hand-side valuegoal
- the result- Returns:
- the left-hand-side value solution
- Throws:
SolverException
- if the expression cannot be solved
-
computeRight
Description copied from class:AbstractBinaryExpressionSolver
Compute the right-hand-side value given that the result and the left are knownNOTE: Assumes commutativity by default
- Overrides:
computeRight
in classAbstractBinaryExpressionSolver<RightShiftExpression>
- Parameters:
lval
- the left-hand-side valuegoal
- the result- Returns:
- the right-hand-side value solution
- Throws:
SolverException
- if the expression cannot be solved
-
solveTwoSided
protected AssemblyResolution solveTwoSided(AbstractAssemblyResolutionFactory<?, ?> factory, RightShiftExpression exp, MaskedLong goal, Map<String, throws NeedsBackfillException, SolverExceptionLong> vals, AssemblyResolvedPatterns cur, Set<SolverHint> hints, String description) - Overrides:
solveTwoSided
in classAbstractBinaryExpressionSolver<RightShiftExpression>
- Throws:
NeedsBackfillException
SolverException
-