Package ghidra.pcode.struct

# Interface StructuredSleigh.RVal

All Known Subinterfaces:
  `StructuredSleigh.LVal`, `StructuredSleigh.StmtWithVal`, `StructuredSleigh.Var`

All Known Implementing Classes:
  `CallExpr`, `Expr`, `LiteralLongExpr`, `RawExpr`

Enclosing class:
  `StructuredSleigh`

protected static interface StructuredSleigh.RVal
A value which can only be used on the right-hand side of an assignment

- ## Method Summary

  Modifier and Type
  Method
  Description
  `StructuredSleigh.RVal`
  `addf(StructuredSleigh.RVal rhs)`
  Generate float addition
  `StructuredSleigh.RVal`
  `addi(long rhs)`
  Generate integer addition
  `StructuredSleigh.RVal`
  `addi(StructuredSleigh.RVal rhs)`
  Generate integer addition
  `StructuredSleigh.RVal`
  `andb(long rhs)`
  Generate boolean and
  `StructuredSleigh.RVal`
  `andb(StructuredSleigh.RVal rhs)`
  Generate boolean and
  `StructuredSleigh.RVal`
  `andi(long rhs)`
  Generate an integer (bitwise) and
  `StructuredSleigh.RVal`
  `andi(StructuredSleigh.RVal rhs)`
  Generate an integer (bitwise) and
  `StructuredSleigh.RVal`
  `cast(DataType type)`
  Cast the value to the given type
  `StructuredSleigh.LVal`
  `deref()`
  Generate a dereference (in the C sense) in the default address space
  `StructuredSleigh.LVal`
  `deref(AddressSpace space)`
  Generate a dereference (in the C sense)
  `StructuredSleigh.RVal`
  `divf(StructuredSleigh.RVal rhs)`
  Generate float division
  `StructuredSleigh.RVal`
  `divis(long rhs)`
  Generate signed integer division
  `StructuredSleigh.RVal`
  `divis(StructuredSleigh.RVal rhs)`
  Generate signed integer division
  `StructuredSleigh.RVal`
  `diviu(long rhs)`
  Generate unsigned integer division
  `StructuredSleigh.RVal`
  `diviu(StructuredSleigh.RVal rhs)`
  Generate unsigned integer division
  `StructuredSleigh.RVal`
  `eq(long rhs)`
  Generate integer comparison: equal to
  `StructuredSleigh.RVal`
  `eq(StructuredSleigh.RVal rhs)`
  Generate integer comparison: equal to
  `StructuredSleigh.RVal`
  `eqf(StructuredSleigh.RVal rhs)`
  Generate float comparison: equal to
  `DataType`
  `getType()`
  Get the type of the value
  `StructuredSleigh.RVal`
  `gtef(StructuredSleigh.RVal rhs)`
  Generate float comparison: greater than or equal to
  `StructuredSleigh.RVal`
  `gteis(long rhs)`
  Generate signed integer comparison: greater than or equal to
  `StructuredSleigh.RVal`
  `gteis(StructuredSleigh.RVal rhs)`
  Generate signed integer comparison: greater than or equal to
  `StructuredSleigh.RVal`
  `gteiu(long rhs)`
  Generate unsigned integer comparison: greater than or equal to
  `StructuredSleigh.RVal`
  `gteiu(StructuredSleigh.RVal rhs)`
  Generate unsigned integer comparison: greater than or equal to
  `StructuredSleigh.RVal`
  `gtf(StructuredSleigh.RVal rhs)`
  Generate float comparison: greater than
  `StructuredSleigh.RVal`
  `gtis(long rhs)`
  Generate signed integer comparison: greater than
  `StructuredSleigh.RVal`
  `gtis(StructuredSleigh.RVal rhs)`
  Generate signed integer comparison: greater than
  `StructuredSleigh.RVal`
  `gtiu(long rhs)`
  Generate unsigned integer comparison: greater than
  `StructuredSleigh.RVal`
  `gtiu(StructuredSleigh.RVal rhs)`
  Generate unsigned integer comparison: greater than
  `StructuredSleigh.RVal`
  `ltef(StructuredSleigh.RVal rhs)`
  Generate float comparison: less than or equal to
  `StructuredSleigh.RVal`
  `lteis(long rhs)`
  Generate signed integer comparison: less than or equal to
  `StructuredSleigh.RVal`
  `lteis(StructuredSleigh.RVal rhs)`
  Generate signed integer comparison: less than or equal to
  `StructuredSleigh.RVal`
  `lteiu(long rhs)`
  Generate unsigned integer comparison: less than or equal to
  `StructuredSleigh.RVal`
  `lteiu(StructuredSleigh.RVal rhs)`
  Generate unsigned integer comparison: less than or equal to
  `StructuredSleigh.RVal`
  `ltf(StructuredSleigh.RVal rhs)`
  Generate unsigned integer comparison: less than
  `StructuredSleigh.RVal`
  `ltis(long rhs)`
  Generate signed integer comparison: less than
  `StructuredSleigh.RVal`
  `ltis(StructuredSleigh.RVal rhs)`
  Generate signed integer comparison: less than
  `StructuredSleigh.RVal`
  `ltiu(long rhs)`
  Generate unsigned integer comparison: less than
  `StructuredSleigh.RVal`
  `ltiu(StructuredSleigh.RVal rhs)`
  Generate unsigned integer comparison: less than
  `StructuredSleigh.RVal`
  `mulf(StructuredSleigh.RVal rhs)`
  Generate float multiplication
  `StructuredSleigh.RVal`
  `muli(long rhs)`
  Generate integer multiplication
  `StructuredSleigh.RVal`
  `muli(StructuredSleigh.RVal rhs)`
  Generate integer multiplication
  `StructuredSleigh.RVal`
  `neq(long rhs)`
  Generate integer comparison: not equal to
  `StructuredSleigh.RVal`
  `neq(StructuredSleigh.RVal rhs)`
  Generate integer comparison: not equal to
  `StructuredSleigh.RVal`
  `neqf(StructuredSleigh.RVal rhs)`
  Generate float comparison: not equal to
  `StructuredSleigh.RVal`
  `notb()`
  Generate boolean inversion
  `StructuredSleigh.RVal`
  `noti()`
  Generate integer (bitwise) inversion
  `StructuredSleigh.RVal`
  `orb(long rhs)`
  Generate boolean or
  `StructuredSleigh.RVal`
  `orb(StructuredSleigh.RVal rhs)`
  Generate boolean or
  `StructuredSleigh.RVal`
  `ori(long rhs)`
  Generate an integer (bitwise) or
  `StructuredSleigh.RVal`
  `ori(StructuredSleigh.RVal rhs)`
  Generate an integer (bitwise) or
  `StructuredSleigh.RVal`
  `remis(long rhs)`
  Generate signed integer division remainder
  `StructuredSleigh.RVal`
  `remis(StructuredSleigh.RVal rhs)`
  Generate signed integer division remainder
  `StructuredSleigh.RVal`
  `remiu(long rhs)`
  Generate unsigned integer division remainder
  `StructuredSleigh.RVal`
  `remiu(StructuredSleigh.RVal rhs)`
  Generate unsigned integer division remainder
  `StructuredSleigh.RVal`
  `shli(long rhs)`
  Generate bit shift to the left
  `StructuredSleigh.RVal`
  `shli(StructuredSleigh.RVal rhs)`
  Generate bit shift to the left
  `StructuredSleigh.RVal`
  `shris(long rhs)`
  Generate signed bit shift to the right
  `StructuredSleigh.RVal`
  `shris(StructuredSleigh.RVal rhs)`
  Generate signed bit shift to the right
  `StructuredSleigh.RVal`
  `shriu(long rhs)`
  Generate unsigned bit shift to the right
  `StructuredSleigh.RVal`
  `shriu(StructuredSleigh.RVal rhs)`
  Generate unsigned bit shift to the right
  `StructuredSleigh.RVal`
  `subf(StructuredSleigh.RVal rhs)`
  Generate float subtraction
  `StructuredSleigh.RVal`
  `subi(long rhs)`
  Generate integer subtraction of an immediate
  `StructuredSleigh.RVal`
  `subi(StructuredSleigh.RVal rhs)`
  Generate integer subtraction
  `StructuredSleigh.RVal`
  `xorb(long rhs)`
  Generate boolean exclusive or
  `StructuredSleigh.RVal`
  `xorb(StructuredSleigh.RVal rhs)`
  Generate boolean exclusive or
  `StructuredSleigh.RVal`
  `xori(long rhs)`
  Generate an integer (bitwise) exclusive or
  `StructuredSleigh.RVal`
  `xori(StructuredSleigh.RVal rhs)`
  Generate an integer (bitwise) exclusive or

- ## Method Details

  - ### getType

    DataType getType()
    Get the type of the value
    Returns:
      the type

  - ### cast

    StructuredSleigh.RVal cast(DataType type)
    Cast the value to the given type

    This functions like a C-style pointer cast. There are no implied operations or conversions. Notably, casting between integers and floats is just a re-interpretation of the underlying bits.

    Parameters:
      `type` - the type
    Returns:
      a handle to the resulting value

  - ### deref

    StructuredSleigh.LVal deref(AddressSpace space)
    Generate a dereference (in the C sense)

    The value is treated as an address, and the result is essentially a variable in the given target address space.

    Parameters:
      `space` - the address space of the result
    Returns:
      a handle to the resulting value

  - ### deref

    StructuredSleigh.LVal deref()
    Generate a dereference (in the C sense) in the default address space
    Returns:
      a handle to the resulting value

  - ### notb

    StructuredSleigh.RVal notb()
    Generate boolean inversion
    Returns:
      a handle to the resulting value

  - ### noti

    StructuredSleigh.RVal noti()
    Generate integer (bitwise) inversion
    Returns:
      a handle to the resulting value

  - ### eq

    StructuredSleigh.RVal eq(StructuredSleigh.RVal rhs)
    Generate integer comparison: equal to
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### eq

    StructuredSleigh.RVal eq(long rhs)
    Generate integer comparison: equal to
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### eqf

    StructuredSleigh.RVal eqf(StructuredSleigh.RVal rhs)
    Generate float comparison: equal to
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### neq

    StructuredSleigh.RVal neq(StructuredSleigh.RVal rhs)
    Generate integer comparison: not equal to
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### neq

    StructuredSleigh.RVal neq(long rhs)
    Generate integer comparison: not equal to
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### neqf

    StructuredSleigh.RVal neqf(StructuredSleigh.RVal rhs)
    Generate float comparison: not equal to
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### ltiu

    StructuredSleigh.RVal ltiu(StructuredSleigh.RVal rhs)
    Generate unsigned integer comparison: less than
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### ltiu

    StructuredSleigh.RVal ltiu(long rhs)
    Generate unsigned integer comparison: less than
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### ltis

    StructuredSleigh.RVal ltis(StructuredSleigh.RVal rhs)
    Generate signed integer comparison: less than
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### ltis

    StructuredSleigh.RVal ltis(long rhs)
    Generate signed integer comparison: less than
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### ltf

    StructuredSleigh.RVal ltf(StructuredSleigh.RVal rhs)
    Generate unsigned integer comparison: less than
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### gtiu

    StructuredSleigh.RVal gtiu(StructuredSleigh.RVal rhs)
    Generate unsigned integer comparison: greater than
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### gtiu

    StructuredSleigh.RVal gtiu(long rhs)
    Generate unsigned integer comparison: greater than
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### gtis

    StructuredSleigh.RVal gtis(StructuredSleigh.RVal rhs)
    Generate signed integer comparison: greater than
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### gtis

    StructuredSleigh.RVal gtis(long rhs)
    Generate signed integer comparison: greater than
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### gtf

    StructuredSleigh.RVal gtf(StructuredSleigh.RVal rhs)
    Generate float comparison: greater than
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### lteiu

    StructuredSleigh.RVal lteiu(StructuredSleigh.RVal rhs)
    Generate unsigned integer comparison: less than or equal to
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### lteiu

    StructuredSleigh.RVal lteiu(long rhs)
    Generate unsigned integer comparison: less than or equal to
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### lteis

    StructuredSleigh.RVal lteis(StructuredSleigh.RVal rhs)
    Generate signed integer comparison: less than or equal to
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### lteis

    StructuredSleigh.RVal lteis(long rhs)
    Generate signed integer comparison: less than or equal to
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### ltef

    StructuredSleigh.RVal ltef(StructuredSleigh.RVal rhs)
    Generate float comparison: less than or equal to
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### gteiu

    StructuredSleigh.RVal gteiu(StructuredSleigh.RVal rhs)
    Generate unsigned integer comparison: greater than or equal to
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### gteiu

    StructuredSleigh.RVal gteiu(long rhs)
    Generate unsigned integer comparison: greater than or equal to
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### gteis

    StructuredSleigh.RVal gteis(StructuredSleigh.RVal rhs)
    Generate signed integer comparison: greater than or equal to
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### gteis

    StructuredSleigh.RVal gteis(long rhs)
    Generate signed integer comparison: greater than or equal to
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### gtef

    StructuredSleigh.RVal gtef(StructuredSleigh.RVal rhs)
    Generate float comparison: greater than or equal to
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### orb

    StructuredSleigh.RVal orb(StructuredSleigh.RVal rhs)
    Generate boolean or
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### orb

    StructuredSleigh.RVal orb(long rhs)
    Generate boolean or
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### ori

    StructuredSleigh.RVal ori(StructuredSleigh.RVal rhs)
    Generate an integer (bitwise) or
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### ori

    StructuredSleigh.RVal ori(long rhs)
    Generate an integer (bitwise) or
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### xorb

    StructuredSleigh.RVal xorb(StructuredSleigh.RVal rhs)
    Generate boolean exclusive or
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### xorb

    StructuredSleigh.RVal xorb(long rhs)
    Generate boolean exclusive or
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### xori

    StructuredSleigh.RVal xori(StructuredSleigh.RVal rhs)
    Generate an integer (bitwise) exclusive or
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### xori

    StructuredSleigh.RVal xori(long rhs)
    Generate an integer (bitwise) exclusive or
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### andb

    StructuredSleigh.RVal andb(StructuredSleigh.RVal rhs)
    Generate boolean and
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### andb

    StructuredSleigh.RVal andb(long rhs)
    Generate boolean and
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### andi

    StructuredSleigh.RVal andi(StructuredSleigh.RVal rhs)
    Generate an integer (bitwise) and
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### andi

    StructuredSleigh.RVal andi(long rhs)
    Generate an integer (bitwise) and
    Parameters:
      `rhs` - the immediate operand (mask)
    Returns:
      a handle to the resulting value

  - ### shli

    StructuredSleigh.RVal shli(StructuredSleigh.RVal rhs)
    Generate bit shift to the left
    Parameters:
      `rhs` - the second operand (shift amount)
    Returns:
      a handle to the resulting value

  - ### shli

    StructuredSleigh.RVal shli(long rhs)
    Generate bit shift to the left
    Parameters:
      `rhs` - the immediate operand (shift amount)
    Returns:
      a handle to the resulting value

  - ### shriu

    StructuredSleigh.RVal shriu(StructuredSleigh.RVal rhs)
    Generate unsigned bit shift to the right
    Parameters:
      `rhs` - the second operand (shift amount)
    Returns:
      a handle to the resulting value

  - ### shriu

    StructuredSleigh.RVal shriu(long rhs)
    Generate unsigned bit shift to the right
    Parameters:
      `rhs` - the immediate operand (shift amount)
    Returns:
      a handle to the resulting value

  - ### shris

    StructuredSleigh.RVal shris(StructuredSleigh.RVal rhs)
    Generate signed bit shift to the right
    Parameters:
      `rhs` - the second operand (shift amount)
    Returns:
      a handle to the resulting value

  - ### shris

    StructuredSleigh.RVal shris(long rhs)
    Generate signed bit shift to the right
    Parameters:
      `rhs` - the immediate operand (shift amount)
    Returns:
      a handle to the resulting value

  - ### addi

    StructuredSleigh.RVal addi(StructuredSleigh.RVal rhs)
    Generate integer addition
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### addi

    StructuredSleigh.RVal addi(long rhs)
    Generate integer addition
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### addf

    StructuredSleigh.RVal addf(StructuredSleigh.RVal rhs)
    Generate float addition
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### subi

    StructuredSleigh.RVal subi(StructuredSleigh.RVal rhs)
    Generate integer subtraction
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### subi

    StructuredSleigh.RVal subi(long rhs)
    Generate integer subtraction of an immediate
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### subf

    StructuredSleigh.RVal subf(StructuredSleigh.RVal rhs)
    Generate float subtraction
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### muli

    StructuredSleigh.RVal muli(StructuredSleigh.RVal rhs)
    Generate integer multiplication
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### muli

    StructuredSleigh.RVal muli(long rhs)
    Generate integer multiplication
    Parameters:
      `rhs` - the immediate operand
    Returns:
      a handle to the resulting value

  - ### mulf

    StructuredSleigh.RVal mulf(StructuredSleigh.RVal rhs)
    Generate float multiplication
    Parameters:
      `rhs` - the second operand
    Returns:
      a handle to the resulting value

  - ### diviu

    StructuredSleigh.RVal diviu(StructuredSleigh.RVal rhs)
    Generate unsigned integer division
    Parameters:
      `rhs` - the divisor
    Returns:
      a handle to the resulting value

  - ### diviu

    StructuredSleigh.RVal diviu(long rhs)
    Generate unsigned integer division
    Parameters:
      `rhs` - the immediate divisor
    Returns:
      a handle to the resulting value

  - ### divis

    StructuredSleigh.RVal divis(StructuredSleigh.RVal rhs)
    Generate signed integer division
    Parameters:
      `rhs` - the divisor
    Returns:
      a handle to the resulting value

  - ### divis

    StructuredSleigh.RVal divis(long rhs)
    Generate signed integer division
    Parameters:
      `rhs` - the immediate divisor
    Returns:
      a handle to the resulting value

  - ### divf

    StructuredSleigh.RVal divf(StructuredSleigh.RVal rhs)
    Generate float division
    Parameters:
      `rhs` - the divisor
    Returns:
      a handle to the resulting value

  - ### remiu

    StructuredSleigh.RVal remiu(StructuredSleigh.RVal rhs)
    Generate unsigned integer division remainder
    Parameters:
      `rhs` - the divisor
    Returns:
      a handle to the resulting value

  - ### remiu

    StructuredSleigh.RVal remiu(long rhs)
    Generate unsigned integer division remainder
    Parameters:
      `rhs` - the immediate divisor
    Returns:
      a handle to the resulting value

  - ### remis

    StructuredSleigh.RVal remis(StructuredSleigh.RVal rhs)
    Generate signed integer division remainder
    Parameters:
      `rhs` - the divisor
    Returns:
      a handle to the resulting value

  - ### remis

    StructuredSleigh.RVal remis(long rhs)
    Generate signed integer division remainder
    Parameters:
      `rhs` - the immediate divisor
    Returns:
      a handle to the resulting value