## org.apache.bcel.generic
Interface InstructionConstants

All Known Implementing Classes:
  InstructionFactory, PUSH

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

Version:
  $Id: InstructionConstants.java,v 1.1.1.1 2001/10/29 20:00:18 jvanzyl Exp $
Author:
  M. Dahm

Nested Class Summary
`static class` `InstructionConstants.Clinit`

Field Summary
`static ArrayInstruction` `AALOAD`
`static ArrayInstruction` `AASTORE`
`static Instruction` `ACONST_NULL`
`static LocalVariableInstruction` `ALOAD_0`
`static LocalVariableInstruction` `ALOAD_1`
`static LocalVariableInstruction` `ALOAD_2`
`static ReturnInstruction` `ARETURN`
`static Instruction` `ARRAYLENGTH`
`static LocalVariableInstruction` `ASTORE_0`
`static LocalVariableInstruction` `ASTORE_1`
`static LocalVariableInstruction` `ASTORE_2`
`static Instruction` `ATHROW`
`static ArrayInstruction` `BALOAD`
`static ArrayInstruction` `BASTORE`
`static InstructionConstants.Clinit` `bla` Interfaces may have no static initializers, so we simulate this with an inner class.
`static ArrayInstruction` `CALOAD`
`static ArrayInstruction` `CASTORE`
`static ConversionInstruction` `D2F`
`static ConversionInstruction` `D2I`
`static ConversionInstruction` `D2L`
`static ArithmeticInstruction` `DADD`
`static ArrayInstruction` `DALOAD`
`static ArrayInstruction` `DASTORE`
`static Instruction` `DCMPG`
`static Instruction` `DCMPL`
`static Instruction` `DCONST_0`
`static Instruction` `DCONST_1`
`static ArithmeticInstruction` `DDIV`
`static ArithmeticInstruction` `DMUL`
`static ArithmeticInstruction` `DNEG`
`static ArithmeticInstruction` `DREM`
`static ReturnInstruction` `DRETURN`
`static ArithmeticInstruction` `DSUB`
`static StackInstruction` `DUP`
`static StackInstruction` `DUP_X1`
`static StackInstruction` `DUP_X2`
`static StackInstruction` `DUP2`
`static StackInstruction` `DUP2_X1`
`static StackInstruction` `DUP2_X2`
`static ConversionInstruction` `F2D`
`static ConversionInstruction` `F2I`
`static ConversionInstruction` `F2L`
`static ArithmeticInstruction` `FADD`
`static ArrayInstruction` `FALOAD`
`static ArrayInstruction` `FASTORE`
`static Instruction` `FCMPG`
`static Instruction` `FCMPL`
`static Instruction` `FCONST_0`
`static Instruction` `FCONST_1`
`static Instruction` `FCONST_2`
`static ArithmeticInstruction` `FDIV`
`static ArithmeticInstruction` `FMUL`
`static ArithmeticInstruction` `FNEG`
`static ArithmeticInstruction` `FREM`
`static ReturnInstruction` `FRETURN`
`static ArithmeticInstruction` `FSUB`
`static ConversionInstruction` `I2B`
`static ConversionInstruction` `I2C`
`static ConversionInstruction` `I2D`
`static ConversionInstruction` `I2F`
`static ConversionInstruction` `I2L`
`static ConversionInstruction` `I2S`
`static ArithmeticInstruction` `IADD`
`static ArrayInstruction` `IALOAD`
`static ArithmeticInstruction` `IAND`
`static ArrayInstruction` `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 ArithmeticInstruction` `IDIV`
`static LocalVariableInstruction` `ILOAD_0`
`static LocalVariableInstruction` `ILOAD_1`
`static LocalVariableInstruction` `ILOAD_2`
`static ArithmeticInstruction` `IMUL`
`static ArithmeticInstruction` `INEG`
`static Instruction[]` `INSTRUCTIONS` Get object via its opcode, for immutable instructions like branch instructions entries are set to null.
`static ArithmeticInstruction` `IOR`
`static ArithmeticInstruction` `IREM`
`static ReturnInstruction` `IRETURN`
`static ArithmeticInstruction` `ISHL`
`static ArithmeticInstruction` `ISHR`
`static LocalVariableInstruction` `ISTORE_0`
`static LocalVariableInstruction` `ISTORE_1`
`static LocalVariableInstruction` `ISTORE_2`
`static ArithmeticInstruction` `ISUB`
`static ArithmeticInstruction` `IUSHR`
`static ArithmeticInstruction` `IXOR`
`static ConversionInstruction` `L2D`
`static ConversionInstruction` `L2F`
`static ConversionInstruction` `L2I`
`static ArithmeticInstruction` `LADD`
`static ArrayInstruction` `LALOAD`
`static ArithmeticInstruction` `LAND`
`static ArrayInstruction` `LASTORE`
`static Instruction` `LCMP`
`static Instruction` `LCONST_0`
`static Instruction` `LCONST_1`
`static ArithmeticInstruction` `LDIV`
`static ArithmeticInstruction` `LMUL`
`static ArithmeticInstruction` `LNEG`
`static ArithmeticInstruction` `LOR`
`static ArithmeticInstruction` `LREM`
`static ReturnInstruction` `LRETURN`
`static ArithmeticInstruction` `LSHL`
`static ArithmeticInstruction` `LSHR`
`static ArithmeticInstruction` `LSUB`
`static ArithmeticInstruction` `LUSHR`
`static ArithmeticInstruction` `LXOR`
`static Instruction` `MONITORENTER`
`static Instruction` `MONITOREXIT`
`static Instruction` `NOP` Predefined instruction objects
`static StackInstruction` `POP`
`static StackInstruction` `POP2`
`static ReturnInstruction` `RETURN`
`static ArrayInstruction` `SALOAD`
`static ArrayInstruction` `SASTORE`
`static StackInstruction` `SWAP`
`static 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().

Field Detail

### NOP

    public static final Instruction NOP

  Predefined instruction objects

### ACONST_NULL

    public static final Instruction ACONST_NULL

### ICONST_M1

    public static final Instruction ICONST_M1

### ICONST_0

    public static final Instruction ICONST_0

### ICONST_1

    public static final Instruction ICONST_1

### ICONST_2

    public static final Instruction ICONST_2

### ICONST_3

    public static final Instruction ICONST_3

### ICONST_4

    public static final Instruction ICONST_4

### ICONST_5

    public static final Instruction ICONST_5

### LCONST_0

    public static final Instruction LCONST_0

### LCONST_1

    public static final Instruction LCONST_1

### FCONST_0

    public static final Instruction FCONST_0

### FCONST_1

    public static final Instruction FCONST_1

### FCONST_2

    public static final Instruction FCONST_2

### DCONST_0

    public static final Instruction DCONST_0

### DCONST_1

    public static final Instruction DCONST_1

### IALOAD

    public static final ArrayInstruction IALOAD

### LALOAD

    public static final ArrayInstruction LALOAD

### FALOAD

    public static final ArrayInstruction FALOAD

### DALOAD

    public static final ArrayInstruction DALOAD

### AALOAD

    public static final ArrayInstruction AALOAD

### BALOAD

    public static final ArrayInstruction BALOAD

### CALOAD

    public static final ArrayInstruction CALOAD

### SALOAD

    public static final ArrayInstruction SALOAD

### IASTORE

    public static final ArrayInstruction IASTORE

### LASTORE

    public static final ArrayInstruction LASTORE

### FASTORE

    public static final ArrayInstruction FASTORE

### DASTORE

    public static final ArrayInstruction DASTORE

### AASTORE

    public static final ArrayInstruction AASTORE

### BASTORE

    public static final ArrayInstruction BASTORE

### CASTORE

    public static final ArrayInstruction CASTORE

### SASTORE

    public static final ArrayInstruction SASTORE

### POP

    public static final StackInstruction POP

### POP2

    public static final StackInstruction POP2

### DUP

    public static final StackInstruction DUP

### DUP_X1

    public static final StackInstruction DUP_X1

### DUP_X2

    public static final StackInstruction DUP_X2

### DUP2

    public static final StackInstruction DUP2

### DUP2_X1

    public static final StackInstruction DUP2_X1

### DUP2_X2

    public static final StackInstruction DUP2_X2

### SWAP

    public static final StackInstruction SWAP

### IADD

    public static final ArithmeticInstruction IADD

### LADD

    public static final ArithmeticInstruction LADD

### FADD

    public static final ArithmeticInstruction FADD

### DADD

    public static final ArithmeticInstruction DADD

### ISUB

    public static final ArithmeticInstruction ISUB

### LSUB

    public static final ArithmeticInstruction LSUB

### FSUB

    public static final ArithmeticInstruction FSUB

### DSUB

    public static final ArithmeticInstruction DSUB

### IMUL

    public static final ArithmeticInstruction IMUL

### LMUL

    public static final ArithmeticInstruction LMUL

### FMUL

    public static final ArithmeticInstruction FMUL

### DMUL

    public static final ArithmeticInstruction DMUL

### IDIV

    public static final ArithmeticInstruction IDIV

### LDIV

    public static final ArithmeticInstruction LDIV

### FDIV

    public static final ArithmeticInstruction FDIV

### DDIV

    public static final ArithmeticInstruction DDIV

### IREM

    public static final ArithmeticInstruction IREM

### LREM

    public static final ArithmeticInstruction LREM

### FREM

    public static final ArithmeticInstruction FREM

### DREM

    public static final ArithmeticInstruction DREM

### INEG

    public static final ArithmeticInstruction INEG

### LNEG

    public static final ArithmeticInstruction LNEG

### FNEG

    public static final ArithmeticInstruction FNEG

### DNEG

    public static final ArithmeticInstruction DNEG

### ISHL

    public static final ArithmeticInstruction ISHL

### LSHL

    public static final ArithmeticInstruction LSHL

### ISHR

    public static final ArithmeticInstruction ISHR

### LSHR

    public static final ArithmeticInstruction LSHR

### IUSHR

    public static final ArithmeticInstruction IUSHR

### LUSHR

    public static final ArithmeticInstruction LUSHR

### IAND

    public static final ArithmeticInstruction IAND

### LAND

    public static final ArithmeticInstruction LAND

### IOR

    public static final ArithmeticInstruction IOR

### LOR

    public static final ArithmeticInstruction LOR

### IXOR

    public static final ArithmeticInstruction IXOR

### LXOR

    public static final ArithmeticInstruction LXOR

### I2L

    public static final ConversionInstruction I2L

### I2F

    public static final ConversionInstruction I2F

### I2D

    public static final ConversionInstruction I2D

### L2I

    public static final ConversionInstruction L2I

### L2F

    public static final ConversionInstruction L2F

### L2D

    public static final ConversionInstruction L2D

### F2I

    public static final ConversionInstruction F2I

### F2L

    public static final ConversionInstruction F2L

### F2D

    public static final ConversionInstruction F2D

### D2I

    public static final ConversionInstruction D2I

### D2L

    public static final ConversionInstruction D2L

### D2F

    public static final ConversionInstruction D2F

### I2B

    public static final ConversionInstruction I2B

### I2C

    public static final ConversionInstruction I2C

### I2S

    public static final ConversionInstruction I2S

### LCMP

    public static final Instruction LCMP

### FCMPL

    public static final Instruction FCMPL

### FCMPG

    public static final Instruction FCMPG

### DCMPL

    public static final Instruction DCMPL

### DCMPG

    public static final Instruction DCMPG

### IRETURN

    public static final ReturnInstruction IRETURN

### LRETURN

    public static final ReturnInstruction LRETURN

### FRETURN

    public static final ReturnInstruction FRETURN

### DRETURN

    public static final ReturnInstruction DRETURN

### ARETURN

    public static final ReturnInstruction ARETURN

### RETURN

    public static final ReturnInstruction RETURN

### ARRAYLENGTH

    public static final Instruction ARRAYLENGTH

### ATHROW

    public static final Instruction ATHROW

### MONITORENTER

    public static final Instruction MONITORENTER

### MONITOREXIT

    public static final Instruction MONITOREXIT

### THIS

    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().

### ALOAD_0

    public static final LocalVariableInstruction ALOAD_0

### ALOAD_1

    public static final LocalVariableInstruction ALOAD_1

### ALOAD_2

    public static final LocalVariableInstruction ALOAD_2

### ILOAD_0

    public static final LocalVariableInstruction ILOAD_0

### ILOAD_1

    public static final LocalVariableInstruction ILOAD_1

### ILOAD_2

    public static final LocalVariableInstruction ILOAD_2

### ASTORE_0

    public static final LocalVariableInstruction ASTORE_0

### ASTORE_1

    public static final LocalVariableInstruction ASTORE_1

### ASTORE_2

    public static final LocalVariableInstruction ASTORE_2

### ISTORE_0

    public static final LocalVariableInstruction ISTORE_0

### ISTORE_1

    public static final LocalVariableInstruction ISTORE_1

### ISTORE_2

    public static final LocalVariableInstruction ISTORE_2

### INSTRUCTIONS

    public static final Instruction[] INSTRUCTIONS

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

### bla

    public static final InstructionConstants.Clinit bla

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

Copyright © 2002-2003 Apache Software Foundation. All Rights Reserved.