public static final enum

ACS.OPS

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.ACS.OPS

Class Overview

Operators for gendec auto-conversion semantics.

Summary

Enum Values
ACS.OPS  ADD  Integer addition. 
ACS.OPS  AND   
ACS.OPS  CUSTOM  Needs a custom (specific) handler. 
ACS.OPS  DIV_S   
ACS.OPS  DIV_U   
ACS.OPS  JUMP  Unconditional branch, for regular branching or call-to-sub branching. 
ACS.OPS  JUMP_IF_EQ  Conditional branch. 
ACS.OPS  JUMP_IF_GE_S  See JUMP_IF_EQ
ACS.OPS  JUMP_IF_GE_U  See JUMP_IF_EQ
ACS.OPS  JUMP_IF_GT_S  See JUMP_IF_EQ
ACS.OPS  JUMP_IF_GT_U  See JUMP_IF_EQ
ACS.OPS  JUMP_IF_LE_S  See JUMP_IF_EQ
ACS.OPS  JUMP_IF_LE_U  See JUMP_IF_EQ
ACS.OPS  JUMP_IF_LT_S  See JUMP_IF_EQ
ACS.OPS  JUMP_IF_LT_U  See JUMP_IF_EQ
ACS.OPS  JUMP_IF_NE  See JUMP_IF_EQ
ACS.OPS  LOAD  Move from memory. 
ACS.OPS  MOVE  Generic move. 
ACS.OPS  MUL   
ACS.OPS  NOP  No-operation. 
ACS.OPS  NOT   
ACS.OPS  OR   
ACS.OPS  REM_S   
ACS.OPS  REM_U   
ACS.OPS  SAR   
ACS.OPS  SET_IF_EQ  Set/reset destination is 2 source operands are equals/not equals. 
ACS.OPS  SET_IF_GE_S  See SET_IF_EQ
ACS.OPS  SET_IF_GE_U  See SET_IF_EQ
ACS.OPS  SET_IF_GT_S  See SET_IF_EQ
ACS.OPS  SET_IF_GT_U  See SET_IF_EQ
ACS.OPS  SET_IF_LE_S  See SET_IF_EQ
ACS.OPS  SET_IF_LE_U  See SET_IF_EQ
ACS.OPS  SET_IF_LT_S  See SET_IF_EQ
ACS.OPS  SET_IF_LT_U  See SET_IF_EQ
ACS.OPS  SET_IF_NE  See SET_IF_EQ
ACS.OPS  SHL   
ACS.OPS  SHR   
ACS.OPS  STORE  Move to memory. 
ACS.OPS  SUB  Integer subtraction. 
ACS.OPS  XOR   
Public Methods
OperationType getDirectConversionOperationType()
Straight-up conversion to an OperationType.
static ACS.OPS valueOf(String name)
final static OPS[] values()
[Expand]
Inherited Methods
From class java.lang.Enum
From class java.lang.Object
From interface java.lang.Comparable

Enum Values

public static final ACS.OPS ADD

Integer addition.
Bitsize may be specified, as well as extension mode, if parts of the operation takes place on parts of the sources.

public static final ACS.OPS AND

public static final ACS.OPS CUSTOM

Needs a custom (specific) handler. Can be used for instructions requiring manual conversion.

public static final ACS.OPS DIV_S

public static final ACS.OPS DIV_U

public static final ACS.OPS JUMP

Unconditional branch, for regular branching or call-to-sub branching.
- Required: src1: the target address.
- Optional: src2: added to the target if provided.
- Optional: dst: a link register that will receive the fall-through address, for call-to-sub branching.
- Optional: maskOnSource: AND'ed to the calculated before assigning to PC.

public static final ACS.OPS JUMP_IF_EQ

Conditional branch. Needs three operands: two sources for comparison; a third source being the target address (could be a register, or an immediate address that was encoded as a PC-relative disp. for ex.)

public static final ACS.OPS JUMP_IF_GE_S

public static final ACS.OPS JUMP_IF_GE_U

public static final ACS.OPS JUMP_IF_GT_S

public static final ACS.OPS JUMP_IF_GT_U

public static final ACS.OPS JUMP_IF_LE_S

public static final ACS.OPS JUMP_IF_LE_U

public static final ACS.OPS JUMP_IF_LT_S

public static final ACS.OPS JUMP_IF_LT_U

public static final ACS.OPS JUMP_IF_NE

public static final ACS.OPS LOAD

Move from memory.

     DST = xxx_EXTEND_TO_DSTSIZE(SRC1)                // src1 must be a mem
 or: DST = xxx_EXTEND_TO_DSTSIZE(msize[SRC1])         // bitsize must be specified
 or: DST = xxx_EXTEND_TO_DSTSIZE(msize[SRC1 + SRC2])  // bitsize must be specified
 
Bitsize should be specified. In the general, the destination (register) is larger than the memory access. The extension mode may be specified.

public static final ACS.OPS MOVE

Generic move. No assumption. For move to/from memory, STORE and LOAD may be better candidates.

public static final ACS.OPS MUL

public static final ACS.OPS NOP

No-operation. Used to generate an IENop.

public static final ACS.OPS NOT

public static final ACS.OPS OR

public static final ACS.OPS REM_S

public static final ACS.OPS REM_U

public static final ACS.OPS SAR

public static final ACS.OPS SET_IF_EQ

Set/reset destination is 2 source operands are equals/not equals.
- Required: src1, src2: operands for comparison.
- Required: src3: target address.

public static final ACS.OPS SET_IF_GE_S

See SET_IF_EQ.

public static final ACS.OPS SET_IF_GE_U

See SET_IF_EQ.

public static final ACS.OPS SET_IF_GT_S

See SET_IF_EQ.

public static final ACS.OPS SET_IF_GT_U

See SET_IF_EQ.

public static final ACS.OPS SET_IF_LE_S

See SET_IF_EQ.

public static final ACS.OPS SET_IF_LE_U

See SET_IF_EQ.

public static final ACS.OPS SET_IF_LT_S

See SET_IF_EQ.

public static final ACS.OPS SET_IF_LT_U

See SET_IF_EQ.

public static final ACS.OPS SET_IF_NE

See SET_IF_EQ.

public static final ACS.OPS SHL

public static final ACS.OPS SHR

public static final ACS.OPS STORE

Move to memory.

     DST = SRC1 (DST must be a MEMORY operand)
 or: [SRC2] = SRC1
 or: [SRC2 + SRC3] = SRC1
 
 If bitsize is unspecified: bitsize(SRC1) is assumed
 Extension mode is N/A
 
 

public static final ACS.OPS SUB

Integer subtraction.

public static final ACS.OPS XOR

Public Methods

public OperationType getDirectConversionOperationType ()

Straight-up conversion to an OperationType.

Returns
  • may be null

public static ACS.OPS valueOf (String name)

public static final OPS[] values ()