public final enum

OperationType

extends Enum<E extends Enum<E>>
java.lang.Object
   ↳ java.lang.Enum<E extends java.lang.Enum<E>>
     ↳ com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.OperationType

Class Overview

Operation types.

Summary

Enum Values
OperationType  ADD  integer addition, signed or unsigned  
OperationType  AND  binary-AND (careful not to confuse with LOG_AND  
OperationType  CARRY  resulting carry from the addition of two operands  
OperationType  CAST   
OperationType  CAST_S   
OperationType  DIV2_S  [NO NOT USE FOR NOW] signed integer division: input=(2N, N), output=(N, N)  
OperationType  DIV2_U  [NO NOT USE FOR NOW] unsigned integer division: input=(2N, N), output=(N, N)  
OperationType  DIV_S  signed integer division, simple: input=(N, N), output=N (remainder discarded)  
OperationType  DIV_U  unsigned integer division, simple: input=(N, N), output=N (remainder discarded)  
OperationType  DP2EDP   
OperationType  GE_S  signed greater or equal  
OperationType  GE_U  unsigned greater or equal  
OperationType  GT_S  signed greater (strict)  
OperationType  GT_U  unsigned greater (strict)  
OperationType  INT2EDP   
OperationType  LE_S  signed less or equal  
OperationType  LE_U  unsigned less or equal  
OperationType  LOG_AND  logical-AND (careful not to confuse with binary-AND  
OperationType  LOG_EQ  logical equality  
OperationType  LOG_NEQ  logical inequality  
OperationType  LOG_NOT  logical-NOT (careful not to confuse with binary-NOT
OperationType  LOG_OR  logical-OR (careful not to confuse with binary-OR  
OperationType  LONG2EDP   
OperationType  LT_S  signed less (strict)  
OperationType  LT_U  unsigned less (strict)  
OperationType  MUL2_S  [NO NOT USE FOR NOW] signed integer multiplication: input=(N, N), output=2N  
OperationType  MUL2_U  [NO NOT USE FOR NOW] unsigned integer multiplication: input=(N, N), output=2N  
OperationType  MUL_S  signed integer multiplication, truncated: input=(N, N), output=N  
OperationType  MUL_U  unsigned integer multiplication, truncated: input=(N, N), output=N (same as MUL_S since the output is truncated)  
OperationType  NOT  binary-NOT (careful not to confuse with LOG_NOT
OperationType  OR  binary-OR (careful not to confuse with LOG_OR  
OperationType  PAR  Standard parity operator: single operand, single-bit result; result is 1 if number of bits (in operand) set to 1 is even. 
OperationType  POW   
OperationType  REM_S  signed integer modulo, simple: input=(N, N), output=N (quotient discarded)  
OperationType  REM_U  unsigned integer modulo, simple: input=(N, N), output=N (quotient discarded)  
OperationType  ROL  Rotate left, always unsigned  
OperationType  ROR  Rotate right, always unsigned  
OperationType  SAR  shift right with count modulo bitsize, signed (arithmetic)  
OperationType  SHL  shift left with count modulo bitsize, always unsigned  
OperationType  SHR  shift right with count modulo bitsize, unsigned. 
OperationType  SP2EDP   
OperationType  SUB  integer subtraction, signed or unsigned  
OperationType  XOR  binary-XOR  
Public Methods
int getMaxParameters()
int getMinParameters()
boolean isValid(int nbParameters)
String toString()
static OperationType valueOf(String name)
final static OperationType[] values()
[Expand]
Inherited Methods
From class java.lang.Enum
From class java.lang.Object
From interface java.lang.Comparable

Enum Values

public static final OperationType ADD

integer addition, signed or unsigned

public static final OperationType AND

binary-AND (careful not to confuse with LOG_AND

public static final OperationType CARRY

resulting carry from the addition of two operands

public static final OperationType CAST

public static final OperationType CAST_S

public static final OperationType DIV2_S

[NO NOT USE FOR NOW] signed integer division: input=(2N, N), output=(N, N)

public static final OperationType DIV2_U

[NO NOT USE FOR NOW] unsigned integer division: input=(2N, N), output=(N, N)

public static final OperationType DIV_S

signed integer division, simple: input=(N, N), output=N (remainder discarded)

public static final OperationType DIV_U

unsigned integer division, simple: input=(N, N), output=N (remainder discarded)

public static final OperationType DP2EDP

public static final OperationType GE_S

signed greater or equal

public static final OperationType GE_U

unsigned greater or equal

public static final OperationType GT_S

signed greater (strict)

public static final OperationType GT_U

unsigned greater (strict)

public static final OperationType INT2EDP

public static final OperationType LE_S

signed less or equal

public static final OperationType LE_U

unsigned less or equal

public static final OperationType LOG_AND

logical-AND (careful not to confuse with binary-AND

public static final OperationType LOG_EQ

logical equality

public static final OperationType LOG_NEQ

logical inequality

public static final OperationType LOG_NOT

logical-NOT (careful not to confuse with binary-NOT. In practice in C, same as binary-NOT.

public static final OperationType LOG_OR

logical-OR (careful not to confuse with binary-OR

public static final OperationType LONG2EDP

public static final OperationType LT_S

signed less (strict)

public static final OperationType LT_U

unsigned less (strict)

public static final OperationType MUL2_S

[NO NOT USE FOR NOW] signed integer multiplication: input=(N, N), output=2N

public static final OperationType MUL2_U

[NO NOT USE FOR NOW] unsigned integer multiplication: input=(N, N), output=2N

public static final OperationType MUL_S

signed integer multiplication, truncated: input=(N, N), output=N

public static final OperationType MUL_U

unsigned integer multiplication, truncated: input=(N, N), output=N (same as MUL_S since the output is truncated)

public static final OperationType NOT

binary-NOT (careful not to confuse with LOG_NOT.

public static final OperationType OR

binary-OR (careful not to confuse with LOG_OR

public static final OperationType PAR

Standard parity operator: single operand, single-bit result; result is 1 if number of bits (in operand) set to 1 is even.
Cannot be translated to a simple operator, for convenience only. It will need ad-hoc translators in C.

public static final OperationType POW

public static final OperationType REM_S

signed integer modulo, simple: input=(N, N), output=N (quotient discarded)

public static final OperationType REM_U

unsigned integer modulo, simple: input=(N, N), output=N (quotient discarded)

public static final OperationType ROL

Rotate left, always unsigned

public static final OperationType ROR

Rotate right, always unsigned

public static final OperationType SAR

shift right with count modulo bitsize, signed (arithmetic)

public static final OperationType SHL

shift left with count modulo bitsize, always unsigned

public static final OperationType SHR

shift right with count modulo bitsize, unsigned. Note: in C, also represented '>>'; unsigned or signed shift depends on the type of the variable to be shifted.

public static final OperationType SP2EDP

public static final OperationType SUB

integer subtraction, signed or unsigned

public static final OperationType XOR

binary-XOR

Public Methods

public int getMaxParameters ()

public int getMinParameters ()

public boolean isValid (int nbParameters)

public String toString ()

public static OperationType valueOf (String name)

public static final OperationType[] values ()