APIdia Launch Partner
Top Description Inners Fields Constructors Methods
java.lang.classfile

public final Enum Opcode

extends Enum<Opcode>
Class Inheritance
Imports
java.lang.classfile.instruction.*, jdk.internal.classfile.impl.RawBytecodeHelper

Describes the opcodes of the JVM instruction set, as described in JVMS 6.5. This includes a few pseudo-opcodes modified by wide.

An opcode describes the operation of an instruction.

API Note

The enum constants are named after the opcodes' mnemonics in uppercase. Wide pseudo-opcodes are named with the original opcodes' mnemonic plus a _W suffix. However, ldc_w, ldc2_w, goto_w, and jsr_w are legitimate opcodes instead of wide pseudo-opcodes.

Since
24
Java Virtual Machine Specification
6.5 Instructions
See Also
Instruction

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static enum
Opcode.Kind

Kinds of opcodes.

Field Summary

Modifier and TypeField and Description
public static final Opcode
AALOAD

Load reference from array.

public static final Opcode
AASTORE

Store into reference array.

public static final Opcode
ACONST_NULL

Push null.

public static final Opcode
ALOAD

Load reference from local variable.

public static final Opcode
ALOAD_0

Load reference from local variable slot 0.

public static final Opcode
ALOAD_1

Load reference from local variable slot 1.

public static final Opcode
ALOAD_2

Load reference from local variable slot 2.

public static final Opcode
ALOAD_3

Load reference from local variable slot 3.

public static final Opcode
ALOAD_W

Load reference from local variable (wide index).

public static final Opcode
ANEWARRAY

Create new array of reference.

public static final Opcode
ARETURN

Return reference from method.

public static final Opcode
ARRAYLENGTH

Get length of array.

public static final Opcode
ASTORE

Store reference into local variable.

public static final Opcode
ASTORE_0

Store reference into local variable slot 0.

public static final Opcode
ASTORE_1

Store reference into local variable slot 1.

public static final Opcode
ASTORE_2

Store reference into local variable slot 2.

public static final Opcode
ASTORE_3

Store reference into local variable slot 3.

public static final Opcode
ASTORE_W

Store reference into local variable (wide index).

public static final Opcode
ATHROW

Throw exception or error.

public static final Opcode
BALOAD

Load byte or boolean from array.

public static final Opcode
BASTORE

Store into byte or boolean array.

public static final Opcode
BIPUSH

Push int value from sign-extension of immediate byte value.

private final int
public static final Opcode
CALOAD

Load char from array.

public static final Opcode
CASTORE

Store into char array.

public static final Opcode
CHECKCAST

Check whether object is of given type.

public static final Opcode
D2F

Convert double to float.

public static final Opcode
D2I

Convert double to int.

public static final Opcode
D2L

Convert double to long.

public static final Opcode
public static final Opcode
DALOAD

Load double from array.

public static final Opcode
DASTORE

Store into double array.

public static final Opcode
DCMPG

Compare double.

public static final Opcode
DCMPL

Compare double.

public static final Opcode
DCONST_0

Push double constant 0.0D.

public static final Opcode
DCONST_1

Push double constant 1.0D.

public static final Opcode
DDIV

Divide double.

public static final Opcode
DLOAD

Load double from local variable.

public static final Opcode
DLOAD_0

Load double from local variable slot 0.

public static final Opcode
DLOAD_1

Load double from local variable slot 1.

public static final Opcode
DLOAD_2

Load double from local variable slot 2.

public static final Opcode
DLOAD_3

Load double from local variable slot 3.

public static final Opcode
DLOAD_W

Load double from local variable (wide index).

public static final Opcode
DMUL

Multiply double.

public static final Opcode
DNEG

Negate double.

public static final Opcode
DREM

Remainder double.

public static final Opcode
DRETURN

Return double from method.

public static final Opcode
DSTORE

Store double into local variable.

public static final Opcode
DSTORE_0

Store double into local variable slot 0.

public static final Opcode
DSTORE_1

Store double into local variable slot 1.

public static final Opcode
DSTORE_2

Store double into local variable slot 2.

public static final Opcode
DSTORE_3

Store double into local variable slot 3.

public static final Opcode
DSTORE_W

Store double into local variable (wide index).

public static final Opcode
DSUB

Subtract double.

public static final Opcode
DUP

Duplicate the top operand stack value.

public static final Opcode
DUP2

Duplicate the top one or two operand stack values.

public static final Opcode
DUP2_X1

Duplicate the top one or two operand stack values and insert two or three values down.

public static final Opcode
DUP2_X2

Duplicate the top one or two operand stack values and insert two, three, or four values down.

public static final Opcode
DUP_X1

Duplicate the top operand stack value and insert two values down.

public static final Opcode
DUP_X2

Duplicate the top operand stack value and insert two or three values down.

public static final Opcode
F2D

Convert float to double.

public static final Opcode
F2I

Convert float to int.

public static final Opcode
F2L

Convert float to long.

public static final Opcode
FADD

Add float.

public static final Opcode
FALOAD

Load float from array.

public static final Opcode
FASTORE

Store into float array.

public static final Opcode
FCMPG

Compare float.

public static final Opcode
FCMPL

Compare float.

public static final Opcode
FCONST_0

Push float constant 0.0F.

public static final Opcode
FCONST_1

Push float constant 1.0F.

public static final Opcode
FCONST_2

Push float constant 2.0F.

public static final Opcode
FDIV

Divide float.

public static final Opcode
FLOAD

Load float from local variable.

public static final Opcode
FLOAD_0

Load float from local variable slot 0.

public static final Opcode
FLOAD_1

Load float from local variable slot 1.

public static final Opcode
FLOAD_2

Load float from local variable slot 2.

public static final Opcode
FLOAD_3

Load float from local variable slot 3.

public static final Opcode
FLOAD_W

Load float from local variable (wide index).

public static final Opcode
FMUL

Multiply float.

public static final Opcode
FNEG

Negate float.

public static final Opcode
FREM

Remainder float.

public static final Opcode
FRETURN

Return float from method.

public static final Opcode
FSTORE

Store float into local variable.

public static final Opcode
FSTORE_0

Store float into local variable slot 0.

public static final Opcode
FSTORE_1

Store float into local variable slot 1.

public static final Opcode
FSTORE_2

Store float into local variable slot 2.

public static final Opcode
FSTORE_3

Store float into local variable slot 3.

public static final Opcode
FSTORE_W

Store float into local variable (wide index).

public static final Opcode
FSUB

Subtract float.

public static final Opcode
GETFIELD

Fetch field from object.

public static final Opcode
GETSTATIC

Get static field from class.

public static final Opcode
GOTO

Branch always.

public static final Opcode
GOTO_W

Branch always (wide index).

public static final Opcode
I2B

Convert int to byte.

public static final Opcode
I2C

Convert int to char.

public static final Opcode
I2D

Convert int to double.

public static final Opcode
I2F

Convert int to float.

public static final Opcode
I2L

Convert int to long.

public static final Opcode
I2S

Convert int to short.

public static final Opcode
IADD

Add int.

public static final Opcode
IALOAD

Load int from array.

public static final Opcode
IAND

Bitwise AND int.

public static final Opcode
IASTORE

Store into int array.

public static final Opcode
ICONST_0

Push int constant 0.

public static final Opcode
ICONST_1

Push int constant 1.

public static final Opcode
ICONST_2

Push int constant 2.

public static final Opcode
ICONST_3

Push int constant 3.

public static final Opcode
ICONST_4

Push int constant 4.

public static final Opcode
ICONST_5

Push int constant 5.

public static final Opcode
ICONST_M1

Push int constant -1.

public static final Opcode
IDIV

Divide int.

public static final Opcode
IF_ACMPEQ

Branch if reference comparison operand1 == operand2 succeeds.

public static final Opcode
IF_ACMPNE

Branch if reference comparison operand1 != operand2 succeeds.

public static final Opcode
IF_ICMPEQ

Branch if int comparison operand1 == operand2 succeeds.

public static final Opcode
IF_ICMPGE

Branch if int comparison operand1 >= operand2 succeeds.

public static final Opcode
IF_ICMPGT

Branch if int comparison operand1 > operand2 succeeds.

public static final Opcode
IF_ICMPLE

Branch if int comparison operand1 <= operand2 succeeds.

public static final Opcode
IF_ICMPLT

Branch if int comparison operand1 < operand2 succeeds.

public static final Opcode
IF_ICMPNE

Branch if int comparison operand1 != operand2 succeeds.

public static final Opcode
IFEQ

Branch if int comparison == 0 succeeds.

public static final Opcode
IFGE

Branch if int comparison >= 0 succeeds.

public static final Opcode
IFGT

Branch if int comparison > 0 succeeds.

public static final Opcode
IFLE

Branch if int comparison <= 0 succeeds.

public static final Opcode
IFLT

Branch if int comparison < 0 succeeds.

public static final Opcode
IFNE

Branch if int comparison != 0 succeeds.

public static final Opcode
IFNONNULL

Branch if reference is not null.

public static final Opcode
IFNULL

Branch if reference is null.

public static final Opcode
IINC

Increment int local variable by constant.

public static final Opcode
IINC_W

Increment local variable by constant (wide index).

public static final Opcode
ILOAD

Load int from local variable.

public static final Opcode
ILOAD_0

Load int from local variable slot 0.

public static final Opcode
ILOAD_1

Load int from local variable slot 1.

public static final Opcode
ILOAD_2

Load int from local variable slot 2.

public static final Opcode
ILOAD_3

Load int from local variable slot 3.

public static final Opcode
ILOAD_W

Load int from local variable (wide index).

public static final Opcode
IMUL

Multiply int.

public static final Opcode
INEG

Negate int.

public static final Opcode
INSTANCEOF

Determine if object is of given type.

public static final Opcode
INVOKEDYNAMIC

Invoke a dynamically-computed call site.

public static final Opcode
INVOKEINTERFACE

Invoke interface method.

public static final Opcode
INVOKESPECIAL

Invoke instance method; direct invocation of instance initialization methods and methods of the current class and its supertypes.

public static final Opcode
INVOKESTATIC

Invoke a class (static) method.

public static final Opcode
INVOKEVIRTUAL

Invoke instance method; dispatch based on class.

public static final Opcode
IOR

Bitwise OR int.

public static final Opcode
IREM

Remainder int.

public static final Opcode
IRETURN

Return int from method.

public static final Opcode
ISHL

Shift left int.

public static final Opcode
ISHR

Arithmetic shift right int.

public static final Opcode
ISTORE

Store int into local variable.

public static final Opcode
ISTORE_0

Store int into local variable slot 0.

public static final Opcode
ISTORE_1

Store int into local variable slot 1.

public static final Opcode
ISTORE_2

Store int into local variable slot 2.

public static final Opcode
ISTORE_3

Store int into local variable slot 3.

public static final Opcode
ISTORE_W

Store int into local variable (wide index).

public static final Opcode
ISUB

Subtract int.

public static final Opcode
IUSHR

Logical shift right int.

public static final Opcode
IXOR

Bitwise XOR int.

public static final Opcode
JSR

(Discontinued) Jump subroutine; last used in major version 50.

public static final Opcode
JSR_W

(Discontinued) Jump subroutine (wide index); last used in major version 50.

private final Opcode.Kind
public static final Opcode
L2D

Convert long to double.

public static final Opcode
L2F

Convert long to float.

public static final Opcode
L2I

Convert long to int.

public static final Opcode
LADD

Add long.

public static final Opcode
LALOAD

Load long from array.

public static final Opcode
LAND

Bitwise AND long.

public static final Opcode
LASTORE

Store into long array.

public static final Opcode
LCMP

Compare long.

public static final Opcode
LCONST_0

Push long constant 0L.

public static final Opcode
LCONST_1

Push long constant 1L.

public static final Opcode
LDC

Push item from run-time constant pool.

public static final Opcode
LDC2_W

Push long or double from run-time constant pool (wide index).

public static final Opcode
LDC_W

Push item from run-time constant pool (wide index).

public static final Opcode
LDIV

Divide long.

public static final Opcode
LLOAD

Load long from local variable.

public static final Opcode
LLOAD_0

Load long from local variable slot 0.

public static final Opcode
LLOAD_1

Load long from local variable slot 1.

public static final Opcode
LLOAD_2

Load long from local variable slot 2.

public static final Opcode
LLOAD_3

Load long from local variable slot 3.

public static final Opcode
LLOAD_W

Load long from local variable (wide index).

public static final Opcode
LMUL

Multiply long.

public static final Opcode
LNEG

Negate long.

public static final Opcode
LOOKUPSWITCH

Access jump table by key match and jump.

public static final Opcode
LOR

Bitwise OR long.

public static final Opcode
LREM

Remainder long.

public static final Opcode
LRETURN

Return long from method.

public static final Opcode
LSHL

Shift left long.

public static final Opcode
LSHR

Arithmetic shift right long.

public static final Opcode
LSTORE

Store long into local variable.

public static final Opcode
LSTORE_0

Store long into local variable slot 0.

public static final Opcode
LSTORE_1

Store long into local variable slot 1.

public static final Opcode
LSTORE_2

Store long into local variable slot 2.

public static final Opcode
LSTORE_3

Store long into local variable slot 3.

public static final Opcode
LSTORE_W

Store long into local variable (wide index).

public static final Opcode
LSUB

Subtract long.

public static final Opcode
LUSHR

Logical shift right long.

public static final Opcode
LXOR

Bitwise XOR long.

public static final Opcode
MONITORENTER

Enter monitor for object.

public static final Opcode
MONITOREXIT

Exit monitor for object.

public static final Opcode
MULTIANEWARRAY

Create new multidimensional array.

public static final Opcode
NEW

Create new object.

public static final Opcode
NEWARRAY

Create new array.

public static final Opcode
NOP

Do nothing.

public static final Opcode
POP

Pop the top operand stack value.

public static final Opcode
POP2

Pop the top one or two operand stack values.

public static final Opcode
PUTFIELD

Set field in object.

public static final Opcode
PUTSTATIC

Set static field in class.

public static final Opcode
RET

(Discontinued) Return from subroutine; last used in major version 50.

public static final Opcode
RET_W

(Discontinued) Return from subroutine (wide index); last used in major version 50.

public static final Opcode
RETURN

Return void from method.

public static final Opcode
SALOAD

Load short from array.

public static final Opcode
SASTORE

Store into short array.

public static final Opcode
SIPUSH

Push int value from sign-extension of immediate short value.

private final int
public static final Opcode
SWAP

Swap the top two operand stack values.

public static final Opcode
TABLESWITCH

Access jump table by index and jump.

Constructor Summary

AccessConstructor and Description
private
Opcode(int bytecode, int sizeIfFixed, Opcode.Kind kind)

Method Summary

Modifier and TypeMethod and Description
public int

Returns:

the opcode value
bytecode
()

Returns the opcode value.

public boolean

Returns:

true if this is a pseudo-opcode modified by wide opcode
isWide
()

Returns true if this is a pseudo-opcode modified by wide opcode.

public Opcode.Kind

Returns:

operation kind
kind
()

Returns operation kind.

public int

Returns:

size of the instruction in bytes if fixed, or -1 otherwise
sizeIfFixed
()

Returns size of the instruction in bytes if fixed, or -1 otherwise.

public static Opcode
public static Opcode[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf