org.aspectj.apache.bcel.generic
Interface InstructionConstants

All Known Implementing Classes:
InstructionFactory

public interface InstructionConstants

This interface 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);


Nested Class Summary
static class InstructionConstants.Clinit
           
 
Field Summary
static Instruction AALOAD
           
static Instruction AASTORE
           
static Instruction ACONST_NULL
           
static InstructionLV ALOAD_0
           
static InstructionLV ALOAD_1
           
static InstructionLV ALOAD_2
           
static InstructionLV ALOAD_3
           
static Instruction ARETURN
           
static Instruction ARRAYLENGTH
           
static InstructionLV ASTORE_0
           
static InstructionLV ASTORE_1
           
static InstructionLV ASTORE_2
           
static InstructionLV ASTORE_3
           
static Instruction ATHROW
           
static Instruction BALOAD
           
static Instruction BASTORE
           
static InstructionConstants.Clinit bla
          Interfaces may have no static initializers, so we simulate this with an inner class.
static Instruction CALOAD
           
static Instruction CASTORE
           
static Instruction D2F
           
static Instruction D2I
           
static Instruction D2L
           
static Instruction DADD
           
static Instruction DALOAD
           
static Instruction DASTORE
           
static Instruction DCMPG
           
static Instruction DCMPL
           
static Instruction DCONST_0
           
static Instruction DCONST_1
           
static Instruction DDIV
           
static InstructionLV DLOAD_0
           
static InstructionLV DLOAD_1
           
static InstructionLV DLOAD_2
           
static InstructionLV DLOAD_3
           
static Instruction DMUL
           
static Instruction DNEG
           
static Instruction DREM
           
static Instruction DRETURN
           
static InstructionLV DSTORE_0
           
static InstructionLV DSTORE_1
           
static InstructionLV DSTORE_2
           
static InstructionLV DSTORE_3
           
static Instruction DSUB
           
static Instruction DUP
           
static Instruction DUP_X1
           
static Instruction DUP_X2
           
static Instruction DUP2
           
static Instruction DUP2_X1
           
static Instruction DUP2_X2
           
static Instruction F2D
           
static Instruction F2I
           
static Instruction F2L
           
static Instruction FADD
           
static Instruction FALOAD
           
static Instruction FASTORE
           
static Instruction FCMPG
           
static Instruction FCMPL
           
static Instruction FCONST_0
           
static Instruction FCONST_1
           
static Instruction FCONST_2
           
static Instruction FDIV
           
static InstructionLV FLOAD_0
           
static InstructionLV FLOAD_1
           
static InstructionLV FLOAD_2
           
static InstructionLV FLOAD_3
           
static Instruction FMUL
           
static Instruction FNEG
           
static Instruction FREM
           
static Instruction FRETURN
           
static InstructionLV FSTORE_0
           
static InstructionLV FSTORE_1
           
static InstructionLV FSTORE_2
           
static InstructionLV FSTORE_3
           
static Instruction FSUB
           
static Instruction I2B
           
static Instruction I2C
           
static Instruction I2D
           
static Instruction I2F
           
static Instruction I2L
           
static Instruction I2S
           
static Instruction IADD
           
static Instruction IALOAD
           
static Instruction IAND
           
static Instruction IASTORE
           
static Instruction ICONST_0
           
static Instruction ICONST_1
           
static Instruction ICONST_2
           
static Instruction ICONST_3
           
static Instruction ICONST_4
           
static Instruction ICONST_5
           
static Instruction ICONST_M1
           
static Instruction IDIV
           
static InstructionLV ILOAD_0
           
static InstructionLV ILOAD_1
           
static InstructionLV ILOAD_2
           
static InstructionLV ILOAD_3
           
static Instruction IMPDEP1
           
static Instruction IMPDEP2
           
static Instruction IMUL
           
static Instruction INEG
           
static Instruction[] INSTRUCTIONS
          Get object via its opcode, for immutable instructions like branch instructions entries are set to null.
static Instruction IOR
           
static Instruction IREM
           
static Instruction IRETURN
           
static Instruction ISHL
           
static Instruction ISHR
           
static InstructionLV ISTORE_0
           
static InstructionLV ISTORE_1
           
static InstructionLV ISTORE_2
           
static InstructionLV ISTORE_3
           
static Instruction ISUB
           
static Instruction IUSHR
           
static Instruction IXOR
           
static Instruction L2D
           
static Instruction L2F
           
static Instruction L2I
           
static Instruction LADD
           
static Instruction LALOAD
           
static Instruction LAND
           
static Instruction LASTORE
           
static Instruction LCMP
           
static Instruction LCONST_0
           
static Instruction LCONST_1
           
static Instruction LDIV
           
static InstructionLV LLOAD_0
           
static InstructionLV LLOAD_1
           
static InstructionLV LLOAD_2
           
static InstructionLV LLOAD_3
           
static Instruction LMUL
           
static Instruction LNEG
           
static Instruction LOR
           
static Instruction LREM
           
static Instruction LRETURN
           
static Instruction LSHL
           
static Instruction LSHR
           
static InstructionLV LSTORE_0
           
static InstructionLV LSTORE_1
           
static InstructionLV LSTORE_2
           
static InstructionLV LSTORE_3
           
static Instruction LSUB
           
static Instruction LUSHR
           
static Instruction LXOR
           
static Instruction MONITORENTER
           
static Instruction MONITOREXIT
           
static Instruction NOP
          Predefined instruction objects
static Instruction POP
           
static Instruction POP2
           
static Instruction RETURN
           
static Instruction SALOAD
           
static Instruction SASTORE
           
static Instruction SWAP
           
static InstructionLV THIS
           
 

Field Detail

NOP

static final Instruction NOP
Predefined instruction objects


ACONST_NULL

static final Instruction ACONST_NULL

ICONST_M1

static final Instruction ICONST_M1

ICONST_0

static final Instruction ICONST_0

ICONST_1

static final Instruction ICONST_1

ICONST_2

static final Instruction ICONST_2

ICONST_3

static final Instruction ICONST_3

ICONST_4

static final Instruction ICONST_4

ICONST_5

static final Instruction ICONST_5

LCONST_0

static final Instruction LCONST_0

LCONST_1

static final Instruction LCONST_1

FCONST_0

static final Instruction FCONST_0

FCONST_1

static final Instruction FCONST_1

FCONST_2

static final Instruction FCONST_2

DCONST_0

static final Instruction DCONST_0

DCONST_1

static final Instruction DCONST_1

IALOAD

static final Instruction IALOAD

LALOAD

static final Instruction LALOAD

FALOAD

static final Instruction FALOAD

DALOAD

static final Instruction DALOAD

AALOAD

static final Instruction AALOAD

BALOAD

static final Instruction BALOAD

CALOAD

static final Instruction CALOAD

SALOAD

static final Instruction SALOAD

IASTORE

static final Instruction IASTORE

LASTORE

static final Instruction LASTORE

FASTORE

static final Instruction FASTORE

DASTORE

static final Instruction DASTORE

AASTORE

static final Instruction AASTORE

BASTORE

static final Instruction BASTORE

CASTORE

static final Instruction CASTORE

SASTORE

static final Instruction SASTORE

POP

static final Instruction POP

POP2

static final Instruction POP2

DUP

static final Instruction DUP

DUP_X1

static final Instruction DUP_X1

DUP_X2

static final Instruction DUP_X2

DUP2

static final Instruction DUP2

DUP2_X1

static final Instruction DUP2_X1

DUP2_X2

static final Instruction DUP2_X2

SWAP

static final Instruction SWAP

IADD

static final Instruction IADD

LADD

static final Instruction LADD

FADD

static final Instruction FADD

DADD

static final Instruction DADD

ISUB

static final Instruction ISUB

LSUB

static final Instruction LSUB

FSUB

static final Instruction FSUB

DSUB

static final Instruction DSUB

IMUL

static final Instruction IMUL

LMUL

static final Instruction LMUL

FMUL

static final Instruction FMUL

DMUL

static final Instruction DMUL

IDIV

static final Instruction IDIV

LDIV

static final Instruction LDIV

FDIV

static final Instruction FDIV

DDIV

static final Instruction DDIV

IREM

static final Instruction IREM

LREM

static final Instruction LREM

FREM

static final Instruction FREM

DREM

static final Instruction DREM

INEG

static final Instruction INEG

LNEG

static final Instruction LNEG

FNEG

static final Instruction FNEG

DNEG

static final Instruction DNEG

ISHL

static final Instruction ISHL

LSHL

static final Instruction LSHL

ISHR

static final Instruction ISHR

LSHR

static final Instruction LSHR

IUSHR

static final Instruction IUSHR

LUSHR

static final Instruction LUSHR

IAND

static final Instruction IAND

LAND

static final Instruction LAND

IOR

static final Instruction IOR

LOR

static final Instruction LOR

IXOR

static final Instruction IXOR

LXOR

static final Instruction LXOR

I2L

static final Instruction I2L

I2F

static final Instruction I2F

I2D

static final Instruction I2D

L2I

static final Instruction L2I

L2F

static final Instruction L2F

L2D

static final Instruction L2D

F2I

static final Instruction F2I

F2L

static final Instruction F2L

F2D

static final Instruction F2D

D2I

static final Instruction D2I

D2L

static final Instruction D2L

D2F

static final Instruction D2F

I2B

static final Instruction I2B

I2C

static final Instruction I2C

I2S

static final Instruction I2S

LCMP

static final Instruction LCMP

FCMPL

static final Instruction FCMPL

FCMPG

static final Instruction FCMPG

DCMPL

static final Instruction DCMPL

DCMPG

static final Instruction DCMPG

IRETURN

static final Instruction IRETURN

LRETURN

static final Instruction LRETURN

FRETURN

static final Instruction FRETURN

DRETURN

static final Instruction DRETURN

ARETURN

static final Instruction ARETURN

RETURN

static final Instruction RETURN

ARRAYLENGTH

static final Instruction ARRAYLENGTH

ATHROW

static final Instruction ATHROW

MONITORENTER

static final Instruction MONITORENTER

MONITOREXIT

static final Instruction MONITOREXIT

IMPDEP1

static final Instruction IMPDEP1

IMPDEP2

static final Instruction IMPDEP2

THIS

static final InstructionLV THIS

ALOAD_0

static final InstructionLV ALOAD_0

ALOAD_1

static final InstructionLV ALOAD_1

ALOAD_2

static final InstructionLV ALOAD_2

ALOAD_3

static final InstructionLV ALOAD_3

ILOAD_0

static final InstructionLV ILOAD_0

ILOAD_1

static final InstructionLV ILOAD_1

ILOAD_2

static final InstructionLV ILOAD_2

ILOAD_3

static final InstructionLV ILOAD_3

DLOAD_0

static final InstructionLV DLOAD_0

DLOAD_1

static final InstructionLV DLOAD_1

DLOAD_2

static final InstructionLV DLOAD_2

DLOAD_3

static final InstructionLV DLOAD_3

FLOAD_0

static final InstructionLV FLOAD_0

FLOAD_1

static final InstructionLV FLOAD_1

FLOAD_2

static final InstructionLV FLOAD_2

FLOAD_3

static final InstructionLV FLOAD_3

LLOAD_0

static final InstructionLV LLOAD_0

LLOAD_1

static final InstructionLV LLOAD_1

LLOAD_2

static final InstructionLV LLOAD_2

LLOAD_3

static final InstructionLV LLOAD_3

ASTORE_0

static final InstructionLV ASTORE_0

ASTORE_1

static final InstructionLV ASTORE_1

ASTORE_2

static final InstructionLV ASTORE_2

ASTORE_3

static final InstructionLV ASTORE_3

ISTORE_0

static final InstructionLV ISTORE_0

ISTORE_1

static final InstructionLV ISTORE_1

ISTORE_2

static final InstructionLV ISTORE_2

ISTORE_3

static final InstructionLV ISTORE_3

LSTORE_0

static final InstructionLV LSTORE_0

LSTORE_1

static final InstructionLV LSTORE_1

LSTORE_2

static final InstructionLV LSTORE_2

LSTORE_3

static final InstructionLV LSTORE_3

FSTORE_0

static final InstructionLV FSTORE_0

FSTORE_1

static final InstructionLV FSTORE_1

FSTORE_2

static final InstructionLV FSTORE_2

FSTORE_3

static final InstructionLV FSTORE_3

DSTORE_0

static final InstructionLV DSTORE_0

DSTORE_1

static final InstructionLV DSTORE_1

DSTORE_2

static final InstructionLV DSTORE_2

DSTORE_3

static final InstructionLV DSTORE_3

INSTRUCTIONS

static final Instruction[] INSTRUCTIONS
Get object via its opcode, for immutable instructions like branch instructions entries are set to null.


bla

static final InstructionConstants.Clinit bla
Interfaces may have no static initializers, so we simulate this with an inner class.