| Enum Constant and Description |
|---|
ABORT
Turn the vm state to FAULT immediately, and cannot be caught.
|
ABS
The input is made positive.
|
ADD
a is added to b.
|
AND
Boolean and between each bit in the inputs.
|
APPEND
The item on top of main stack is removed and appended to the second item on top of the main
stack.
|
ASSERT
Pop the top value of the stack, if it false, then exit vm execution and set vm state to
FAULT.
|
BOOLAND
If both a and b are not 0, the output is 1.
|
BOOLOR
If a or b is not 0, the output is 1.
|
CALL
Calls the function at the target address which is represented as a 1-byte signed offset from
the beginning of the current instruction.
|
CALL_L
Calls the function at the target address which is represented as a 4-bytes signed offset from
the beginning of the current instruction.
|
CALLA
Pop the address of a function from the stack, and call the function.
|
CAT
Concatenates two strings.
|
CLEAR
Clear the stack
|
CLEARITEMS
Remove all the items from the compound-type.
|
CONVERT
Converts the top item to the specified type.
|
DEC
1 is subtracted from the input.
|
DEPTH
Puts the number of stack items onto the stack.
|
DIV
a is divided by b.
|
DROP
Removes the top stack item.
|
DUP
Duplicates the top stack item.
|
ENDFINALLY
End finally, If no exception happen or be catched, vm will jump to the target instruction of
ENDTRY/ENDTRY_L.
|
ENDTRY
Ensures that the appropriate surrounding finally blocks are executed.
|
ENDTRY_L
Ensures that the appropriate surrounding finally blocks are executed.
|
EQUAL
Returns 1 if the inputs are exactly equal, 0 otherwise.
|
GE
Returns 1 if a is greater than or equal to b, 0 otherwise.
|
GT
Returns 1 if a is greater than b, 0 otherwise.
|
HASKEY
An input index n (or key) and an array (or map) are removed from the top of the main stack.
|
INC
1 is added to the input.
|
INITSLOT
Initialize the argument slot and the local variable list for the current execution context.
|
INITSSLOT
Initialize the static field list for the current execution context.
|
INVERT
Flips all of the bits in the input.
|
ISNULL
Returns true if the input is null.
|
ISTYPE
Returns true if the top item is of the specified type.
|
JMP
Unconditionally transfers control to a target instruction.
|
JMP_L
Unconditionally transfers control to a target instruction.
|
JMPEQ
Transfers control to a target instruction if two values are equal.
|
JMPEQ_L
Transfers control to a target instruction if two values are equal.
|
JMPGE
Transfers control to a target instruction if the first value is greater than or equal to the
second value.
|
JMPGE_L
Transfers control to a target instruction if the first value is greater than or equal to the
second value.
|
JMPGT
Transfers control to a target instruction if the first value is greater than the second
value.
|
JMPGT_L
Transfers control to a target instruction if the first value is greater than the second
value.
|
JMPIF
Transfers control to a target instruction if the value is "true", not "null", or non-zero.
|
JMPIF_L
Transfers control to a target instruction if the value is "true", not "null", or non-zero.
|
JMPIFNOT
Transfers control to a target instruction if the value is "false", a "null" reference, or
zero.
|
JMPIFNOT_L
Transfers control to a target instruction if the value is "false", a "null" reference, or
zero.
|
JMPLE
Transfers control to a target instruction if the first value is less than or equal to the
second value.
|
JMPLE_L
Transfers control to a target instruction if the first value is less than or equal to the
second value.
|
JMPLT
Transfers control to a target instruction if the first value is less than the second value.
|
JMPLT_L
Transfers control to a target instruction if the first value is less than the second value.
|
JMPNE
Transfers control to a target instruction when two values are not equal.
|
JMPNE_L
Transfers control to a target instruction when two values are not equal.
|
KEYS
A map is taken from top of the main stack.
|
LDARG
Loads the argument at a specified index onto the evaluation stack.
|
LDARG0
Loads the argument at index 0 onto the evaluation stack.
|
LDARG1
Loads the argument at index 1 onto the evaluation stack.
|
LDARG2
Loads the argument at index 2 onto the evaluation stack.
|
LDARG3
Loads the argument at index 3 onto the evaluation stack.
|
LDARG4
Loads the argument at index 4 onto the evaluation stack.
|
LDARG5
Loads the argument at index 5 onto the evaluation stack.
|
LDARG6
Loads the argument at index 6 onto the evaluation stack.
|
LDLOC
Loads the local variable at a specified index onto the evaluation stack.
|
LDLOC0
Loads the local variable at index 0 onto the evaluation stack.
|
LDLOC1
Loads the local variable at index 1 onto the evaluation stack.
|
LDLOC2
Loads the local variable at index 2 onto the evaluation stack.
|
LDLOC3
Loads the local variable at index 3 onto the evaluation stack.
|
LDLOC4
Loads the local variable at index 4 onto the evaluation stack.
|
LDLOC5
Loads the local variable at index 5 onto the evaluation stack.
|
LDLOC6
Loads the local variable at index 6 onto the evaluation stack.
|
LDSFLD
Loads the static field at a specified index onto the evaluation stack.
|
LDSFLD0
Loads the static field at index 0 onto the evaluation stack.
|
LDSFLD1
Loads the static field at index 1 onto the evaluation stack.
|
LDSFLD2
Loads the static field at index 2 onto the evaluation stack.
|
LDSFLD3
Loads the static field at index 3 onto the evaluation stack.
|
LDSFLD4
Loads the static field at index 4 onto the evaluation stack.
|
LDSFLD5
Loads the static field at index 5 onto the evaluation stack.
|
LDSFLD6
Loads the static field at index 6 onto the evaluation stack.
|
LE
Returns 1 if a is less than or equal to b, 0 otherwise.
|
LEFT
Keeps only characters left of the specified point in a string.
|
LT
Returns 1 if a is less than b, 0 otherwise.
|
MAX
Returns the larger of a and b.
|
MEMCPY |
MIN
Returns the smaller of a and b.
|
MOD
Returns the remainder after dividing a by b.
|
MUL
a is multiplied by b.
|
NEGATE
The sign of the input is flipped.
|
NEWARRAY
A value n is taken from top of main stack.
|
NEWARRAY_T
A value n is taken from top of main stack.
|
NEWARRAY0
An empty array (with size 0) is put on top of the main stack.
|
NEWBUFFER |
NEWMAP
A Map is created and put on top of the main stack.
|
NEWSTRUCT
A value n is taken from top of main stack.
|
NEWSTRUCT0
An empty struct (with size 0) is put on top of the main stack.
|
NIP
Removes the second-to-top stack item.
|
NOP
The NOP operation does nothing.
|
NOT
If the input is 0 or 1, it is flipped.
|
NOTEQUAL
Returns 1 if the inputs are not equal, 0 otherwise.
|
NUMEQUAL
Returns 1 if the numbers are equal, 0 otherwise.
|
NUMNOTEQUAL
Returns 1 if the numbers are not equal, 0 otherwise.
|
NZ
Returns 0 if the input is 0.
|
OR
Boolean or between each bit in the inputs.
|
OVER
Copies the second-to-top stack item to the top.
|
PACK
A value n is taken from top of main stack.
|
PICK
The item n back in the stack is copied to the top.
|
PICKITEM
An input index n (or key) and an array (or map) are taken from main stack.
|
PUSH0
The number 0 is pushed onto the stack.
|
PUSH1
The number 1 is pushed onto the stack.
|
PUSH10
The number 10 is pushed onto the stack.
|
PUSH11
The number 11 is pushed onto the stack.
|
PUSH12
The number 12 is pushed onto the stack.
|
PUSH13
The number 13 is pushed onto the stack.
|
PUSH14
The number 14 is pushed onto the stack.
|
PUSH15
The number 15 is pushed onto the stack.
|
PUSH16
The number 16 is pushed onto the stack.
|
PUSH2
The number 2 is pushed onto the stack.
|
PUSH3
The number 3 is pushed onto the stack.
|
PUSH4
The number 4 is pushed onto the stack.
|
PUSH5
The number 5 is pushed onto the stack.
|
PUSH6
The number 6 is pushed onto the stack.
|
PUSH7
The number 7 is pushed onto the stack.
|
PUSH8
The number 8 is pushed onto the stack.
|
PUSH9
The number 9 is pushed onto the stack.
|
PUSHA
Convert the next four bytes to an address, and push the address onto the stack.
|
PUSHDATA1
The next 1 byte contains the number of bytes to be pushed onto the stack.
|
PUSHDATA2
The next 2 bytes contain the number of bytes to be pushed onto the stack.
|
PUSHDATA4
The next 4 bytes contain the number of bytes to be pushed onto the stack.
|
PUSHINT128 |
PUSHINT16 |
PUSHINT256 |
PUSHINT32 |
PUSHINT64 |
PUSHINT8 |
PUSHM1
The number -1 is pushed onto the stack.
|
PUSHNULL
The item "null" is pushed onto the stack.
|
REMOVE
An input index n (or key) and an array (or map) are removed from the top of the main stack.
|
RET
Returns from the current method.
|
REVERSE3
Reverse the order of the top 3 items on the stack.
|
REVERSE4
Reverse the order of the top 4 items on the stack.
|
REVERSEITEMS
An array is removed from the top of the main stack and its elements are reversed.
|
REVERSEN
Pop the number N on the stack, and reverse the order of the top N items on the stack.
|
RIGHT
Keeps only characters right of the specified point in a string.
|
ROLL
The item n back in the stack is moved to the top.
|
ROT
The top three items on the stack are rotated to the left.
|
SETITEM
A value v, index n (or key) and an array (or map) are taken from main stack.
|
SHL
Shifts a left b bits, preserving sign.
|
SHR
Shifts a right b bits, preserving sign.
|
SIGN
Puts the sign of top stack item on top of the main stack.
|
SIZE
An array is removed from top of the main stack.
|
STARG
Stores the value on top of the evaluation stack in the argument slot at a specified index.
|
STARG0
Stores the value on top of the evaluation stack in the argument slot at index 0.
|
STARG1
Stores the value on top of the evaluation stack in the argument slot at index 1.
|
STARG2
Stores the value on top of the evaluation stack in the argument slot at index 2.
|
STARG3
Stores the value on top of the evaluation stack in the argument slot at index 3.
|
STARG4
Stores the value on top of the evaluation stack in the argument slot at index 4.
|
STARG5
Stores the value on top of the evaluation stack in the argument slot at index 5.
|
STARG6
Stores the value on top of the evaluation stack in the argument slot at index 6.
|
STLOC
Stores the value on top of the evaluation stack in the local variable list at a specified
index.
|
STLOC0
Stores the value on top of the evaluation stack in the local variable list at index 0.
|
STLOC1
Stores the value on top of the evaluation stack in the local variable list at index 1.
|
STLOC2
Stores the value on top of the evaluation stack in the local variable list at index 2.
|
STLOC3
Stores the value on top of the evaluation stack in the local variable list at index 3.
|
STLOC4
Stores the value on top of the evaluation stack in the local variable list at index 4.
|
STLOC5
Stores the value on top of the evaluation stack in the local variable list at index 5.
|
STLOC6
Stores the value on top of the evaluation stack in the local variable list at index 6.
|
STSFLD
Stores the value on top of the evaluation stack in the static field list at a specified
index.
|
STSFLD0
Stores the value on top of the evaluation stack in the static field list at index 0.
|
STSFLD1
Stores the value on top of the evaluation stack in the static field list at index 1.
|
STSFLD2
Stores the value on top of the evaluation stack in the static field list at index 2.
|
STSFLD3
Stores the value on top of the evaluation stack in the static field list at index 3.
|
STSFLD4
Stores the value on top of the evaluation stack in the static field list at index 4.
|
STSFLD5
Stores the value on top of the evaluation stack in the static field list at index 5.
|
STSFLD6
Stores the value on top of the evaluation stack in the static field list at index 6.
|
SUB
b is subtracted from a.
|
SUBSTR
Returns a section of a string.
|
SWAP
The top two items on the stack are swapped.
|
SYSCALL
Calls to an interop service.
|
THROW
Pop the top value of the stack, and throw it.
|
TRY
TRY CatchOffset(sbyte) FinallyOffset(sbyte).
|
TRY_L
TRY_L CatchOffset(int) FinallyOffset(int).
|
TUCK
The item at the top of the stack is copied and inserted before the second-to-top item.
|
UNPACK
An array is removed from top of the main stack.
|
VALUES
A map is taken from top of the main stack.
|
WITHIN
Returns 1 if x is within the specified range (left-inclusive), 0 otherwise.
|
XDROP
The item n back in the main stack is removed.
|
XOR
Boolean exclusive or between each bit in the inputs.
|
| Modifier and Type | Method and Description |
|---|---|
static OpCode |
get(byte opcode) |
static OpCode |
get(int opcode) |
int |
getCode() |
static OperandSize |
getOperandSize(OpCode code)
Gets the
OperandSize annotation for the given opcode. |
long |
getPrice() |
java.lang.String |
toString() |
static OpCode |
valueOf(byte code) |
static OpCode |
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.
|
static OpCode[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final OpCode PUSHINT8
public static final OpCode PUSHINT16
public static final OpCode PUSHINT32
public static final OpCode PUSHINT64
public static final OpCode PUSHINT128
public static final OpCode PUSHINT256
public static final OpCode PUSHA
public static final OpCode PUSHNULL
public static final OpCode PUSHDATA1
public static final OpCode PUSHDATA2
public static final OpCode PUSHDATA4
public static final OpCode PUSHM1
public static final OpCode PUSH0
public static final OpCode PUSH1
public static final OpCode PUSH2
public static final OpCode PUSH3
public static final OpCode PUSH4
public static final OpCode PUSH5
public static final OpCode PUSH6
public static final OpCode PUSH7
public static final OpCode PUSH8
public static final OpCode PUSH9
public static final OpCode PUSH10
public static final OpCode PUSH11
public static final OpCode PUSH12
public static final OpCode PUSH13
public static final OpCode PUSH14
public static final OpCode PUSH15
public static final OpCode PUSH16
public static final OpCode NOP
public static final OpCode JMP
public static final OpCode JMP_L
public static final OpCode JMPIF
public static final OpCode JMPIF_L
public static final OpCode JMPIFNOT
public static final OpCode JMPIFNOT_L
public static final OpCode JMPEQ
public static final OpCode JMPEQ_L
public static final OpCode JMPNE
public static final OpCode JMPNE_L
public static final OpCode JMPGT
public static final OpCode JMPGT_L
public static final OpCode JMPGE
public static final OpCode JMPGE_L
public static final OpCode JMPLT
public static final OpCode JMPLT_L
public static final OpCode JMPLE
public static final OpCode JMPLE_L
public static final OpCode CALL
public static final OpCode CALL_L
public static final OpCode CALLA
public static final OpCode ABORT
public static final OpCode ASSERT
public static final OpCode THROW
public static final OpCode TRY
public static final OpCode TRY_L
public static final OpCode ENDTRY
public static final OpCode ENDTRY_L
public static final OpCode ENDFINALLY
public static final OpCode RET
public static final OpCode SYSCALL
public static final OpCode DEPTH
public static final OpCode DROP
public static final OpCode NIP
public static final OpCode XDROP
public static final OpCode CLEAR
public static final OpCode DUP
public static final OpCode OVER
public static final OpCode PICK
public static final OpCode TUCK
public static final OpCode SWAP
public static final OpCode ROT
public static final OpCode ROLL
public static final OpCode REVERSE3
public static final OpCode REVERSE4
public static final OpCode REVERSEN
public static final OpCode INITSSLOT
public static final OpCode INITSLOT
public static final OpCode LDSFLD0
public static final OpCode LDSFLD1
public static final OpCode LDSFLD2
public static final OpCode LDSFLD3
public static final OpCode LDSFLD4
public static final OpCode LDSFLD5
public static final OpCode LDSFLD6
public static final OpCode LDSFLD
public static final OpCode STSFLD0
public static final OpCode STSFLD1
public static final OpCode STSFLD2
public static final OpCode STSFLD3
public static final OpCode STSFLD4
public static final OpCode STSFLD5
public static final OpCode STSFLD6
public static final OpCode STSFLD
public static final OpCode LDLOC0
public static final OpCode LDLOC1
public static final OpCode LDLOC2
public static final OpCode LDLOC3
public static final OpCode LDLOC4
public static final OpCode LDLOC5
public static final OpCode LDLOC6
public static final OpCode LDLOC
public static final OpCode STLOC0
public static final OpCode STLOC1
public static final OpCode STLOC2
public static final OpCode STLOC3
public static final OpCode STLOC4
public static final OpCode STLOC5
public static final OpCode STLOC6
public static final OpCode STLOC
public static final OpCode LDARG0
public static final OpCode LDARG1
public static final OpCode LDARG2
public static final OpCode LDARG3
public static final OpCode LDARG4
public static final OpCode LDARG5
public static final OpCode LDARG6
public static final OpCode LDARG
public static final OpCode STARG0
public static final OpCode STARG1
public static final OpCode STARG2
public static final OpCode STARG3
public static final OpCode STARG4
public static final OpCode STARG5
public static final OpCode STARG6
public static final OpCode STARG
public static final OpCode NEWBUFFER
public static final OpCode MEMCPY
public static final OpCode CAT
public static final OpCode SUBSTR
public static final OpCode LEFT
public static final OpCode RIGHT
public static final OpCode INVERT
public static final OpCode AND
public static final OpCode OR
public static final OpCode XOR
public static final OpCode EQUAL
public static final OpCode NOTEQUAL
public static final OpCode SIGN
public static final OpCode ABS
public static final OpCode NEGATE
public static final OpCode INC
public static final OpCode DEC
public static final OpCode ADD
public static final OpCode SUB
public static final OpCode MUL
public static final OpCode DIV
public static final OpCode MOD
public static final OpCode SHL
public static final OpCode SHR
public static final OpCode NOT
public static final OpCode BOOLAND
public static final OpCode BOOLOR
public static final OpCode NZ
public static final OpCode NUMEQUAL
public static final OpCode NUMNOTEQUAL
public static final OpCode LT
public static final OpCode LE
public static final OpCode GT
public static final OpCode GE
public static final OpCode MIN
public static final OpCode MAX
public static final OpCode WITHIN
public static final OpCode PACK
public static final OpCode UNPACK
public static final OpCode NEWARRAY0
public static final OpCode NEWARRAY
public static final OpCode NEWARRAY_T
public static final OpCode NEWSTRUCT0
public static final OpCode NEWSTRUCT
public static final OpCode NEWMAP
public static final OpCode SIZE
public static final OpCode HASKEY
public static final OpCode KEYS
public static final OpCode VALUES
public static final OpCode PICKITEM
public static final OpCode APPEND
public static final OpCode SETITEM
public static final OpCode REVERSEITEMS
public static final OpCode REMOVE
public static final OpCode CLEARITEMS
public static final OpCode ISNULL
public static final OpCode ISTYPE
public static final OpCode CONVERT
public static OpCode[] values()
for (OpCode c : OpCode.values()) System.out.println(c);
public static OpCode valueOf(java.lang.String name)
name - the name of the enum constant to be returned.java.lang.IllegalArgumentException - if this enum type has no constant with the specified namejava.lang.NullPointerException - if the argument is nullpublic int getCode()
public long getPrice()
public static OpCode get(byte opcode)
public static OpCode get(int opcode)
public static OpCode valueOf(byte code)
public java.lang.String toString()
toString in class java.lang.Enum<OpCode>public static OperandSize getOperandSize(OpCode code)
OperandSize annotation for the given opcode.code - The opcode to get the annotation for.