Class OrExpressionSolver
java.lang.Object
ghidra.app.plugin.assembler.sleigh.expr.AbstractExpressionSolver<OrExpression>
ghidra.app.plugin.assembler.sleigh.expr.AbstractBinaryExpressionSolver<OrExpression>
ghidra.app.plugin.assembler.sleigh.expr.OrExpressionSolver
Solves expressions of the form
A | B
-
Nested Class Summary
-
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 valuesprotected MaskedLong
computeCircShiftF
(MaskedLong gval, int size, int dir, MaskedLong goal) protected MaskedLong
computeCircShiftG
(MaskedLong fval, int size, int dir, MaskedLong goal) computeLeft
(MaskedLong rval, MaskedLong goal) Compute the left-hand-side value given that the result and the right are knownprotected AssemblyResolution
solveLeftCircularShift
(AbstractAssemblyResolutionFactory<?, ?> factory, PatternExpression expValue, PatternExpression expShift, int size, int dir, MaskedLong goal, Map<String, Long> vals, AssemblyResolvedPatterns cur, Set<SolverHint> hints, String description) protected AssemblyResolution
solveTwoSided
(AbstractAssemblyResolutionFactory<?, ?> factory, OrExpression exp, MaskedLong goal, Map<String, Long> vals, AssemblyResolvedPatterns cur, Set<SolverHint> hints, String description) protected AssemblyResolution
tryCatenationExpression
(AbstractAssemblyResolutionFactory<?, ?> factory, OrExpression exp, MaskedLong goal, Map<String, Long> vals, AssemblyResolvedPatterns cur, Set<SolverHint> hints, String description) protected AssemblyResolution
tryCircularShiftExpression
(AbstractAssemblyResolutionFactory<?, ?> factory, OrExpression 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
computeRight, getInstructionLength, getValue, solve, solveLeftSide, solveRightSide, valueForResolution
Methods inherited from class ghidra.app.plugin.assembler.sleigh.expr.AbstractExpressionSolver
register
-
Field Details
-
MATCHERS
-
-
Constructor Details
-
OrExpressionSolver
public OrExpressionSolver()
-
-
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<OrExpression>
- 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<OrExpression>
- Parameters:
rval
- the right-hand-side valuegoal
- the result- Returns:
- the left-hand-side value solution
- Throws:
SolverException
- if the expression cannot be solved
-
tryCatenationExpression
protected AssemblyResolution tryCatenationExpression(AbstractAssemblyResolutionFactory<?, ?> factory, OrExpression exp, MaskedLong goal, Map<String, throws SolverExceptionLong> vals, AssemblyResolvedPatterns cur, Set<SolverHint> hints, String description) - Throws:
SolverException
-
tryCircularShiftExpression
protected AssemblyResolution tryCircularShiftExpression(AbstractAssemblyResolutionFactory<?, ?> factory, OrExpression exp, MaskedLong goal, Map<String, throws SolverExceptionLong> vals, AssemblyResolvedPatterns cur, Set<SolverHint> hints, String description) - Throws:
SolverException
-
solveLeftCircularShift
protected AssemblyResolution solveLeftCircularShift(AbstractAssemblyResolutionFactory<?, ?> factory, PatternExpression expValue, PatternExpression expShift, int size, int dir, MaskedLong goal, Map<String, throws NeedsBackfillException, SolverExceptionLong> vals, AssemblyResolvedPatterns cur, Set<SolverHint> hints, String description) -
computeCircShiftG
protected MaskedLong computeCircShiftG(MaskedLong fval, int size, int dir, MaskedLong goal) throws SolverException - Throws:
SolverException
-
computeCircShiftF
-
solveTwoSided
protected AssemblyResolution solveTwoSided(AbstractAssemblyResolutionFactory<?, ?> factory, OrExpression exp, MaskedLong goal, Map<String, throws NeedsBackfillException, SolverExceptionLong> vals, AssemblyResolvedPatterns cur, Set<SolverHint> hints, String description) - Overrides:
solveTwoSided
in classAbstractBinaryExpressionSolver<OrExpression>
- Throws:
NeedsBackfillException
SolverException
-