All Packages  Class Hierarchy  This Package  Previous  Next  Index

Interface de.fub.bytecode.generic.InstructionConstants

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.4 1999/11/23 11:26:27 dahm Exp $
Author:
M. Dahm

Variable Index

 o AALOAD
 o AASTORE
 o ACONST_NULL
 o ALOAD_0
 o ALOAD_1
 o ALOAD_2
 o ARETURN
 o ARRAYLENGTH
 o ASTORE_0
 o ASTORE_1
 o ASTORE_2
 o ATHROW
 o BALOAD
 o BASTORE
 o bla
Interfaces may have no static initializers, so we simulate this with an inner class.
 o CALOAD
 o CASTORE
 o D2F
 o D2I
 o D2L
 o DADD
 o DALOAD
 o DASTORE
 o DCMPG
 o DCMPL
 o DCONST_0
 o DCONST_1
 o DDIV
 o DMUL
 o DNEG
 o DREM
 o DRETURN
 o DSUB
 o DUP
 o DUP2
 o DUP2_X1
 o DUP2_X2
 o DUP_X1
 o DUP_X2
 o F2D
 o F2I
 o F2L
 o FADD
 o FALOAD
 o FASTORE
 o FCMPG
 o FCMPL
 o FCONST_0
 o FCONST_1
 o FCONST_2
 o FDIV
 o FMUL
 o FNEG
 o FREM
 o FRETURN
 o FSUB
 o I2B
 o I2C
 o I2D
 o I2F
 o I2L
 o I2S
 o IADD
 o IALOAD
 o IAND
 o IASTORE
 o ICONST_0
 o ICONST_1
 o ICONST_2
 o ICONST_3
 o ICONST_4
 o ICONST_5
 o ICONST_M1
 o IDIV
 o ILOAD_0
 o ILOAD_1
 o ILOAD_2
 o IMUL
 o INEG
 o INSTRUCTIONS
Get object via its opcode, for immutable instructions like branch instructions entries are set to null.
 o IOR
 o IREM
 o IRETURN
 o ISHL
 o ISHR
 o ISTORE_0
 o ISTORE_1
 o ISTORE_2
 o ISUB
 o IUSHR
 o IXOR
 o L2D
 o L2F
 o L2I
 o LADD
 o LALOAD
 o LAND
 o LASTORE
 o LCMP
 o LCONST_0
 o LCONST_1
 o LDIV
 o LMUL
 o LNEG
 o LOR
 o LREM
 o LRETURN
 o LSHL
 o LSHR
 o LSUB
 o LUSHR
 o LXOR
 o MONITORENTER
 o MONITOREXIT
 o NOP
Predefined instruction objects
 o POP
 o POP2
 o RETURN
 o SALOAD
 o SASTORE
 o SWAP
 o THIS
You can use these constants in multiple places safely, if you can guarantee that you will never alter their internal values, e.g.

Variables

 o NOP
 public static final Instruction NOP
Predefined instruction objects

 o ACONST_NULL
 public static final Instruction ACONST_NULL
 o ICONST_M1
 public static final Instruction ICONST_M1
 o ICONST_0
 public static final Instruction ICONST_0
 o ICONST_1
 public static final Instruction ICONST_1
 o ICONST_2
 public static final Instruction ICONST_2
 o ICONST_3
 public static final Instruction ICONST_3
 o ICONST_4
 public static final Instruction ICONST_4
 o ICONST_5
 public static final Instruction ICONST_5
 o LCONST_0
 public static final Instruction LCONST_0
 o LCONST_1
 public static final Instruction LCONST_1
 o FCONST_0
 public static final Instruction FCONST_0
 o FCONST_1
 public static final Instruction FCONST_1
 o FCONST_2
 public static final Instruction FCONST_2
 o DCONST_0
 public static final Instruction DCONST_0
 o DCONST_1
 public static final Instruction DCONST_1
 o IALOAD
 public static final ArrayInstruction IALOAD
 o LALOAD
 public static final ArrayInstruction LALOAD
 o FALOAD
 public static final ArrayInstruction FALOAD
 o DALOAD
 public static final ArrayInstruction DALOAD
 o AALOAD
 public static final ArrayInstruction AALOAD
 o BALOAD
 public static final ArrayInstruction BALOAD
 o CALOAD
 public static final ArrayInstruction CALOAD
 o SALOAD
 public static final ArrayInstruction SALOAD
 o IASTORE
 public static final ArrayInstruction IASTORE
 o LASTORE
 public static final ArrayInstruction LASTORE
 o FASTORE
 public static final ArrayInstruction FASTORE
 o DASTORE
 public static final ArrayInstruction DASTORE
 o AASTORE
 public static final ArrayInstruction AASTORE
 o BASTORE
 public static final ArrayInstruction BASTORE
 o CASTORE
 public static final ArrayInstruction CASTORE
 o SASTORE
 public static final ArrayInstruction SASTORE
 o POP
 public static final StackInstruction POP
 o POP2
 public static final StackInstruction POP2
 o DUP
 public static final StackInstruction DUP
 o DUP_X1
 public static final StackInstruction DUP_X1
 o DUP_X2
 public static final StackInstruction DUP_X2
 o DUP2
 public static final StackInstruction DUP2
 o DUP2_X1
 public static final StackInstruction DUP2_X1
 o DUP2_X2
 public static final StackInstruction DUP2_X2
 o SWAP
 public static final StackInstruction SWAP
 o IADD
 public static final ArithmeticInstruction IADD
 o LADD
 public static final ArithmeticInstruction LADD
 o FADD
 public static final ArithmeticInstruction FADD
 o DADD
 public static final ArithmeticInstruction DADD
 o ISUB
 public static final ArithmeticInstruction ISUB
 o LSUB
 public static final ArithmeticInstruction LSUB
 o FSUB
 public static final ArithmeticInstruction FSUB
 o DSUB
 public static final ArithmeticInstruction DSUB
 o IMUL
 public static final ArithmeticInstruction IMUL
 o LMUL
 public static final ArithmeticInstruction LMUL
 o FMUL
 public static final ArithmeticInstruction FMUL
 o DMUL
 public static final ArithmeticInstruction DMUL
 o IDIV
 public static final ArithmeticInstruction IDIV
 o LDIV
 public static final ArithmeticInstruction LDIV
 o FDIV
 public static final ArithmeticInstruction FDIV
 o DDIV
 public static final ArithmeticInstruction DDIV
 o IREM
 public static final ArithmeticInstruction IREM
 o LREM
 public static final ArithmeticInstruction LREM
 o FREM
 public static final ArithmeticInstruction FREM
 o DREM
 public static final ArithmeticInstruction DREM
 o INEG
 public static final ArithmeticInstruction INEG
 o LNEG
 public static final ArithmeticInstruction LNEG
 o FNEG
 public static final ArithmeticInstruction FNEG
 o DNEG
 public static final ArithmeticInstruction DNEG
 o ISHL
 public static final ArithmeticInstruction ISHL
 o LSHL
 public static final ArithmeticInstruction LSHL
 o ISHR
 public static final ArithmeticInstruction ISHR
 o LSHR
 public static final ArithmeticInstruction LSHR
 o IUSHR
 public static final ArithmeticInstruction IUSHR
 o LUSHR
 public static final ArithmeticInstruction LUSHR
 o IAND
 public static final ArithmeticInstruction IAND
 o LAND
 public static final ArithmeticInstruction LAND
 o IOR
 public static final ArithmeticInstruction IOR
 o LOR
 public static final ArithmeticInstruction LOR
 o IXOR
 public static final ArithmeticInstruction IXOR
 o LXOR
 public static final ArithmeticInstruction LXOR
 o I2L
 public static final ConversionInstruction I2L
 o I2F
 public static final ConversionInstruction I2F
 o I2D
 public static final ConversionInstruction I2D
 o L2I
 public static final ConversionInstruction L2I
 o L2F
 public static final ConversionInstruction L2F
 o L2D
 public static final ConversionInstruction L2D
 o F2I
 public static final ConversionInstruction F2I
 o F2L
 public static final ConversionInstruction F2L
 o F2D
 public static final ConversionInstruction F2D
 o D2I
 public static final ConversionInstruction D2I
 o D2L
 public static final ConversionInstruction D2L
 o D2F
 public static final ConversionInstruction D2F
 o I2B
 public static final ConversionInstruction I2B
 o I2C
 public static final ConversionInstruction I2C
 o I2S
 public static final ConversionInstruction I2S
 o LCMP
 public static final Instruction LCMP
 o FCMPL
 public static final Instruction FCMPL
 o FCMPG
 public static final Instruction FCMPG
 o DCMPL
 public static final Instruction DCMPL
 o DCMPG
 public static final Instruction DCMPG
 o IRETURN
 public static final ReturnInstruction IRETURN
 o LRETURN
 public static final ReturnInstruction LRETURN
 o FRETURN
 public static final ReturnInstruction FRETURN
 o DRETURN
 public static final ReturnInstruction DRETURN
 o ARETURN
 public static final ReturnInstruction ARETURN
 o RETURN
 public static final ReturnInstruction RETURN
 o ARRAYLENGTH
 public static final Instruction ARRAYLENGTH
 o ATHROW
 public static final Instruction ATHROW
 o MONITORENTER
 public static final Instruction MONITORENTER
 o MONITOREXIT
 public static final Instruction MONITOREXIT
 o 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().

 o ALOAD_0
 public static final LocalVariableInstruction ALOAD_0
 o ALOAD_1
 public static final LocalVariableInstruction ALOAD_1
 o ALOAD_2
 public static final LocalVariableInstruction ALOAD_2
 o ILOAD_0
 public static final LocalVariableInstruction ILOAD_0
 o ILOAD_1
 public static final LocalVariableInstruction ILOAD_1
 o ILOAD_2
 public static final LocalVariableInstruction ILOAD_2
 o ASTORE_0
 public static final LocalVariableInstruction ASTORE_0
 o ASTORE_1
 public static final LocalVariableInstruction ASTORE_1
 o ASTORE_2
 public static final LocalVariableInstruction ASTORE_2
 o ISTORE_0
 public static final LocalVariableInstruction ISTORE_0
 o ISTORE_1
 public static final LocalVariableInstruction ISTORE_1
 o ISTORE_2
 public static final LocalVariableInstruction ISTORE_2
 o INSTRUCTIONS
 public static final Instruction INSTRUCTIONS[]
Get object via its opcode, for immutable instructions like branch instructions entries are set to null.

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


All Packages  Class Hierarchy  This Package  Previous  Next  Index