java.lang.Object
java.lang.Enum<O>
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler.O
All Implemented Interfaces:
Serializable, Comparable<O>, Constable

public enum O extends Enum<O>
Operator for IR template.
  • Enum Constant Details

    • SLICE

      public static final O SLICE
      pseudo-operation: represents an IESlice (operands: exp, beginSlice, endSlice)
    • SLICE_FIRSTBIT

      public static final O SLICE_FIRSTBIT
      pseudo-operation (convenience): represents an IESlice of the first bit, at position 0 (LSB)
    • SLICE_LASTBIT

      public static final O SLICE_LASTBIT
      pseudo-operation (convenience): represents an IESlice of the last bit, at position N-1 (MSB)
    • SLICE_HALFBIT

      public static final O SLICE_HALFBIT
      pseudo-operation (convenience): represents an IESlice of the half bit, at position N/2-1 (HSB) (e.g. bit #31 of a 64-bit value)
    • SLICE_FIRST32

      public static final O SLICE_FIRST32
      pseudo-operation (convenience): represents an IESlice of the first 32 bits
    • SLICE_HALF1

      public static final O SLICE_HALF1
      pseudo-operation (convenience): represents an IESlice of the first half of the expression
    • SLICE_HALF2

      public static final O SLICE_HALF2
      pseudo-operation (convenience): represents an IESlice of the second half of the expression
    • COMPOSE_2

      public static final O COMPOSE_2
      pseudo-operation (convenience): represents an IECompose of two parts (low bits, high-bits)
    • COMPOSE_2EQ

      public static final O COMPOSE_2EQ
      pseudo-operation (convenience): represents an IECompose of two equal-length parts
    • COND

      public static final O COND
      pseudo-operation: represents an IECond (operands: predicate, trueExp, falseExp)
    • NEG

      public static final O NEG
      pseudo-operator: negate the operand (NEG(X) is equivalent to SUB(0, X))
      usage in reserved for multiplicative or additive sequences.
    • DIV

      public static final O DIV
      pseudo-arithmetic wildcard operation for DIV_U and DIV_S
    • REM

      public static final O REM
      pseudo-arithmetic wildcard operation for REM_U and REM_S
    • NCADD

      public static final O NCADD
      wildcard for no-carry add, will match ADD, XOR, OR
    • NCSUB

      public static final O NCSUB
      wildcard for no-carry sub, will match SUB, XOR
    • TRN

      public static final O TRN
      Truncate or zero-extend
    • TRN8

      public static final O TRN8
      Truncate or zero-extend to 8 bits
    • TRN16

      public static final O TRN16
      Truncate or zero-extend to 16 bits
    • TRN32

      public static final O TRN32
      Truncate or zero-extend to 32 bits
    • TRN64

      public static final O TRN64
      Truncate or zero-extend to 64 bits
    • TRN128

      public static final O TRN128
      Truncate or zero-extend to 128 bits
    • EXT

      public static final O EXT
      Sign-extend
    • EXT8

      public static final O EXT8
      Sign-extend to 8 bits
    • EXT16

      public static final O EXT16
      Sign-extend to 16 bits
    • EXT32

      public static final O EXT32
      Sign-extend to 32 bits
    • EXT64

      public static final O EXT64
      Sign-extend to 64 bits
    • EXT128

      public static final O EXT128
      Sign-extend to 128 bits
    • ADD

      public static final O ADD
    • SUB

      public static final O SUB
    • MUL

      public static final O MUL
    • DIV_S

      public static final O DIV_S
    • DIV_U

      public static final O DIV_U
    • REM_S

      public static final O REM_S
    • REM_U

      public static final O REM_U
    • NOT

      public static final O NOT
    • AND

      public static final O AND
    • OR

      public static final O OR
    • XOR

      public static final O XOR
    • LOR

      public static final O LOR
    • LAND

      public static final O LAND
    • LNOT

      public static final O LNOT
    • EQ

      public static final O EQ
    • NE

      public static final O NE
    • GT_S

      public static final O GT_S
    • GE_S

      public static final O GE_S
    • LT_S

      public static final O LT_S
    • LE_S

      public static final O LE_S
    • GT_U

      public static final O GT_U
    • GE_U

      public static final O GE_U
    • LT_U

      public static final O LT_U
    • LE_U

      public static final O LE_U
    • SHL

      public static final O SHL
    • SHR

      public static final O SHR
    • SAR

      public static final O SAR
    • PARITY

      public static final O PARITY
    • CARRY

      public static final O CARRY
    • POW

      public static final O POW
  • Method Details

    • values

      public static O[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static O valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • isCommutative

      public boolean isCommutative()
    • isAssociative

      public boolean isAssociative()
    • getOperationType

      public OperationType getOperationType()
    • isNormal

      public boolean isNormal()
    • getResultingBitsize

      public int getResultingBitsize()
      Returns:
      0 if unknown (common case); else, the expected resulting bitsize of the operation