Package ghidra.app.plugin.assembler.sleigh.expr

# Class XorExpressionSolver

java.lang.Object
ghidra.app.plugin.assembler.sleigh.expr.AbstractExpressionSolver<T>
ghidra.app.plugin.assembler.sleigh.expr.AbstractBinaryExpressionSolver<XorExpression>
ghidra.app.plugin.assembler.sleigh.expr.XorExpressionSolver

public class XorExpressionSolver extends AbstractBinaryExpressionSolver<XorExpression>
Solves expressions of the form `A $xor B`

- ## Field Summary

  ### Fields inherited from class ghidra.app.plugin.assembler.sleigh.expr.AbstractExpressionSolver

  `dbg, solver`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `XorExpressionSolver()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `MaskedLong`
  `compute(MaskedLong lval, MaskedLong rval)`
  Compute the result of applying the operator to the two given values
  `MaskedLong`
  `computeLeft(MaskedLong other, MaskedLong goal)`
  Compute the left-hand-side value given that the result and the right are known

  ### Methods inherited from class ghidra.app.plugin.assembler.sleigh.expr.AbstractBinaryExpressionSolver

  `computeRight, getInstructionLength, getValue, solve, solveLeftSide, solveRightSide, solveTwoSided, valueForResolution`

  ### Methods inherited from class ghidra.app.plugin.assembler.sleigh.expr.AbstractExpressionSolver

  `register`

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

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

- ## Constructor Details

  - ### XorExpressionSolver

    public XorExpressionSolver()

- ## Method Details

  - ### computeLeft

    public MaskedLong computeLeft(MaskedLong other, MaskedLong goal)
    Description copied from class: `AbstractBinaryExpressionSolver`
    Compute the left-hand-side value given that the result and the right are known
    Specified by:
      `computeLeft` in class `AbstractBinaryExpressionSolver<XorExpression>`
    Parameters:
      `other` - the right-hand-side value
      `goal` - the result
    Returns:
      the left-hand-side value solution

  - ### compute

    public MaskedLong compute(MaskedLong lval, MaskedLong rval)
    Description copied from class: `AbstractBinaryExpressionSolver`
    Compute the result of applying the operator to the two given values
    Specified by:
      `compute` in class `AbstractBinaryExpressionSolver<XorExpression>`
    Parameters:
      `lval` - the left-hand-side value
      `rval` - the right-hand-side value
    Returns:
      the result