APIdia Launch Partner
Top Description Fields Constructors Methods
com.sun.org.apache.bcel.internal.generic

public final Class InstructionConst

extends Object
Class Inheritance
Imports
com.sun.org.apache.bcel.internal.Const

Contains shareable instruction objects.

In order to save memory you can use some instructions multiply, since they have an immutable state and are directly derived from Instruction. I.e. they have no instance fields that could be changed. Since some of these instructions like ICONST_0 occur very frequently this can save a lot of time and space. This feature is an adaptation of the FlyWeight design pattern, we just use an array instead of a factory.

The Instructions can also accessed directly under their names, so it's possible to write il.append(Instruction.ICONST_0);

Field Summary

Modifier and TypeField and Description
public static final ArrayInstruction
public static final ArrayInstruction
public static final Instruction
public static final LocalVariableInstruction
public static final LocalVariableInstruction
public static final LocalVariableInstruction
public static final ReturnInstruction
public static final Instruction
public static final LocalVariableInstruction
public static final LocalVariableInstruction
public static final LocalVariableInstruction
public static final Instruction
public static final ArrayInstruction
public static final ArrayInstruction
public static final ArrayInstruction
public static final ArrayInstruction
public static final ConversionInstruction
public static final ConversionInstruction
public static final ConversionInstruction
public static final ArithmeticInstruction
public static final ArrayInstruction
public static final ArrayInstruction
public static final Instruction
public static final Instruction
public static final Instruction
public static final Instruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ReturnInstruction
public static final ArithmeticInstruction
public static final StackInstruction
public static final StackInstruction
public static final StackInstruction
public static final StackInstruction
public static final StackInstruction
public static final StackInstruction
public static final ConversionInstruction
public static final ConversionInstruction
public static final ConversionInstruction
public static final ArithmeticInstruction
public static final ArrayInstruction
public static final ArrayInstruction
public static final Instruction
public static final Instruction
public static final Instruction
public static final Instruction
public static final Instruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ReturnInstruction
public static final ArithmeticInstruction
public static final ConversionInstruction
public static final ConversionInstruction
public static final ConversionInstruction
public static final ConversionInstruction
public static final ConversionInstruction
public static final ConversionInstruction
public static final ArithmeticInstruction
public static final ArrayInstruction
public static final ArithmeticInstruction
public static final ArrayInstruction
public static final Instruction
public static final Instruction
public static final Instruction
public static final Instruction
public static final Instruction
public static final Instruction
public static final Instruction
public static final ArithmeticInstruction
public static final LocalVariableInstruction
public static final LocalVariableInstruction
public static final LocalVariableInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
pack-priv static final Instruction[]
INSTRUCTIONS

Gets object via its opcode, for immutable instructions like branch instructions entries are set to null.

public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ReturnInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final LocalVariableInstruction
public static final LocalVariableInstruction
public static final LocalVariableInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ConversionInstruction
public static final ConversionInstruction
public static final ConversionInstruction
public static final ArithmeticInstruction
public static final ArrayInstruction
public static final ArithmeticInstruction
public static final ArrayInstruction
public static final Instruction
public static final Instruction
public static final Instruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ReturnInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final ArithmeticInstruction
public static final Instruction
public static final Instruction
public static final Instruction
NOP

Predefined instruction objects.

public static final StackInstruction
public static final StackInstruction
public static final ReturnInstruction
public static final ArrayInstruction
public static final ArrayInstruction
public static final StackInstruction
public static final LocalVariableInstruction
THIS

You can use these constants in multiple places safely, if you can guarantee that you will never alter their internal values, e.g. call setIndex().

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static Instruction

Returns:

the entry from the private INSTRUCTIONS table
getInstruction
(final int
the index, e.g. Const#RETURN
index
)

Gets the Instruction.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

AALOADback to summary
public static final ArrayInstruction AALOAD
AASTOREback to summary
public static final ArrayInstruction AASTORE
ACONST_NULLback to summary
public static final Instruction ACONST_NULL
ALOAD_0back to summary
public static final LocalVariableInstruction ALOAD_0
ALOAD_1back to summary
public static final LocalVariableInstruction ALOAD_1
ALOAD_2back to summary
public static final LocalVariableInstruction ALOAD_2
ARETURNback to summary
public static final ReturnInstruction ARETURN
ARRAYLENGTHback to summary
public static final Instruction ARRAYLENGTH
ASTORE_0back to summary
public static final LocalVariableInstruction ASTORE_0
ASTORE_1back to summary
public static final LocalVariableInstruction ASTORE_1
ASTORE_2back to summary
public static final LocalVariableInstruction ASTORE_2
ATHROWback to summary
public static final Instruction ATHROW
BALOADback to summary
public static final ArrayInstruction BALOAD
BASTOREback to summary
public static final ArrayInstruction BASTORE
CALOADback to summary
public static final ArrayInstruction CALOAD
CASTOREback to summary
public static final ArrayInstruction CASTORE
D2Fback to summary
public static final ConversionInstruction D2F
D2Iback to summary
public static final ConversionInstruction D2I
D2Lback to summary
public static final ConversionInstruction D2L
DADDback to summary
public static final ArithmeticInstruction DADD
DALOADback to summary
public static final ArrayInstruction DALOAD
DASTOREback to summary
public static final ArrayInstruction DASTORE
DCMPGback to summary
public static final Instruction DCMPG
DCMPLback to summary
public static final Instruction DCMPL
DCONST_0back to summary
public static final Instruction DCONST_0
DCONST_1back to summary
public static final Instruction DCONST_1
DDIVback to summary
public static final ArithmeticInstruction DDIV
DMULback to summary
public static final ArithmeticInstruction DMUL
DNEGback to summary
public static final ArithmeticInstruction DNEG
DREMback to summary
public static final ArithmeticInstruction DREM
DRETURNback to summary
public static final ReturnInstruction DRETURN
DSUBback to summary
public static final ArithmeticInstruction DSUB
DUPback to summary
public static final StackInstruction DUP
DUP2back to summary
public static final StackInstruction DUP2
DUP2_X1back to summary
public static final StackInstruction DUP2_X1
DUP2_X2back to summary
public static final StackInstruction DUP2_X2
DUP_X1back to summary
public static final StackInstruction DUP_X1
DUP_X2back to summary
public static final StackInstruction DUP_X2
F2Dback to summary
public static final ConversionInstruction F2D
F2Iback to summary
public static final ConversionInstruction F2I
F2Lback to summary
public static final ConversionInstruction F2L
FADDback to summary
public static final ArithmeticInstruction FADD
FALOADback to summary
public static final ArrayInstruction FALOAD
FASTOREback to summary
public static final ArrayInstruction FASTORE
FCMPGback to summary
public static final Instruction FCMPG
FCMPLback to summary
public static final Instruction FCMPL
FCONST_0back to summary
public static final Instruction FCONST_0
FCONST_1back to summary
public static final Instruction FCONST_1
FCONST_2back to summary
public static final Instruction FCONST_2
FDIVback to summary
public static final ArithmeticInstruction FDIV
FMULback to summary
public static final ArithmeticInstruction FMUL
FNEGback to summary
public static final ArithmeticInstruction FNEG
FREMback to summary
public static final ArithmeticInstruction FREM
FRETURNback to summary
public static final ReturnInstruction FRETURN
FSUBback to summary
public static final ArithmeticInstruction FSUB
I2Bback to summary
public static final ConversionInstruction I2B
I2Cback to summary
public static final ConversionInstruction I2C
I2Dback to summary
public static final ConversionInstruction I2D
I2Fback to summary
public static final ConversionInstruction I2F
I2Lback to summary
public static final ConversionInstruction I2L
I2Sback to summary
public static final ConversionInstruction I2S
IADDback to summary
public static final ArithmeticInstruction IADD
IALOADback to summary
public static final ArrayInstruction IALOAD
IANDback to summary
public static final ArithmeticInstruction IAND
IASTOREback to summary
public static final ArrayInstruction IASTORE
ICONST_0back to summary
public static final Instruction ICONST_0
ICONST_1back to summary
public static final Instruction ICONST_1
ICONST_2back to summary
public static final Instruction ICONST_2
ICONST_3back to summary
public static final Instruction ICONST_3
ICONST_4back to summary
public static final Instruction ICONST_4
ICONST_5back to summary
public static final Instruction ICONST_5
ICONST_M1back to summary
public static final Instruction ICONST_M1
IDIVback to summary
public static final ArithmeticInstruction IDIV
ILOAD_0back to summary
public static final LocalVariableInstruction ILOAD_0
ILOAD_1back to summary
public static final LocalVariableInstruction ILOAD_1
ILOAD_2back to summary
public static final LocalVariableInstruction ILOAD_2
IMULback to summary
public static final ArithmeticInstruction IMUL
INEGback to summary
public static final ArithmeticInstruction INEG
INSTRUCTIONSback to summary
pack-priv static final Instruction[] INSTRUCTIONS

Gets object via its opcode, for immutable instructions like branch instructions entries are set to null.

IORback to summary
public static final ArithmeticInstruction IOR
IREMback to summary
public static final ArithmeticInstruction IREM
IRETURNback to summary
public static final ReturnInstruction IRETURN
ISHLback to summary
public static final ArithmeticInstruction ISHL
ISHRback to summary
public static final ArithmeticInstruction ISHR
ISTORE_0back to summary
public static final LocalVariableInstruction ISTORE_0
ISTORE_1back to summary
public static final LocalVariableInstruction ISTORE_1
ISTORE_2back to summary
public static final LocalVariableInstruction ISTORE_2
ISUBback to summary
public static final ArithmeticInstruction ISUB
IUSHRback to summary
public static final ArithmeticInstruction IUSHR
IXORback to summary
public static final ArithmeticInstruction IXOR
L2Dback to summary
public static final ConversionInstruction L2D
L2Fback to summary
public static final ConversionInstruction L2F
L2Iback to summary
public static final ConversionInstruction L2I
LADDback to summary
public static final ArithmeticInstruction LADD
LALOADback to summary
public static final ArrayInstruction LALOAD
LANDback to summary
public static final ArithmeticInstruction LAND
LASTOREback to summary
public static final ArrayInstruction LASTORE
LCMPback to summary
public static final Instruction LCMP
LCONST_0back to summary
public static final Instruction LCONST_0
LCONST_1back to summary
public static final Instruction LCONST_1
LDIVback to summary
public static final ArithmeticInstruction LDIV
LMULback to summary
public static final ArithmeticInstruction LMUL
LNEGback to summary
public static final ArithmeticInstruction LNEG
LORback to summary
public static final ArithmeticInstruction LOR
LREMback to summary
public static final ArithmeticInstruction LREM
LRETURNback to summary
public static final ReturnInstruction LRETURN
LSHLback to summary
public static final ArithmeticInstruction LSHL
LSHRback to summary
public static final ArithmeticInstruction LSHR
LSUBback to summary
public static final ArithmeticInstruction LSUB
LUSHRback to summary
public static final ArithmeticInstruction LUSHR
LXORback to summary
public static final ArithmeticInstruction LXOR
MONITORENTERback to summary
public static final Instruction MONITORENTER
MONITOREXITback to summary
public static final Instruction MONITOREXIT
NOPback to summary
public static final Instruction NOP

Predefined instruction objects. NOTE these are not currently immutable, because Instruction has mutable protected fields opcode and length.

POPback to summary
public static final StackInstruction POP
POP2back to summary
public static final StackInstruction POP2
RETURNback to summary
public static final ReturnInstruction RETURN
SALOADback to summary
public static final ArrayInstruction SALOAD
SASTOREback to summary
public static final ArrayInstruction SASTORE
SWAPback to summary
public static final StackInstruction SWAP
THISback to summary
public static final LocalVariableInstruction THIS

You can use these constants in multiple places safely, if you can guarantee that you will never alter their internal values, e.g. call setIndex().

Constructor Detail

InstructionConstback to summary
private InstructionConst()

Method Detail

getInstructionback to summary
public static Instruction getInstruction(final int index)

Gets the Instruction.

Parameters
index:int

the index, e.g. Const#RETURN

Returns:Instruction

the entry from the private INSTRUCTIONS table