java.lang.Object | ||
↳ | java.lang.Enum<E extends java.lang.Enum<E>> | |
↳ | com.pnfsoftware.jeb.core.units.code.asm.decompiler.ACS.OPS |
Operators for gendec
auto-conversion semantics.
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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() |
Integer addition.
Bitsize may be specified, as well as extension mode, if parts of the operation takes
place on parts of the sources.
Needs a custom (specific) handler. Can be used for instructions requiring manual conversion.
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.
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.)
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 specifiedBitsize should be specified. In the general, the destination (register) is larger than the memory access. The extension mode may be specified.
Set/reset destination is 2 source operands are equals/not equals.
- Required: src1, src2: operands for comparison.
- Required: src3: target address.
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
Straight-up conversion to an OperationType
.