jasm.lang
Class Bytecode.LoadConst

java.lang.Object
  extended by jasm.lang.Bytecode
      extended by jasm.lang.Bytecode.LoadConst
Enclosing class:
Bytecode

public static final class Bytecode.LoadConst
extends Bytecode

Represents all bytecodes for loading constants. Including, iconst, bipush, sipush, ldc, ldc_w


Nested Class Summary
 
Nested classes/interfaces inherited from class jasm.lang.Bytecode
Bytecode.ArrayLength, Bytecode.ArrayLoad, Bytecode.ArrayStore, Bytecode.BinOp, Bytecode.Branch, Bytecode.CheckCast, Bytecode.Cmp, Bytecode.Conversion, Bytecode.Dup, Bytecode.DupX1, Bytecode.DupX2, Bytecode.FieldMode, Bytecode.GetField, Bytecode.Goto, Bytecode.If, Bytecode.IfCmp, Bytecode.IfMode, Bytecode.Iinc, Bytecode.InstanceOf, Bytecode.Invoke, Bytecode.InvokeMode, Bytecode.Label, Bytecode.Load, Bytecode.LoadConst, Bytecode.MonitorEnter, Bytecode.MonitorExit, Bytecode.Neg, Bytecode.New, Bytecode.Nop, Bytecode.Pop, Bytecode.PutField, Bytecode.Return, Bytecode.Store, Bytecode.Swap, Bytecode.Switch, Bytecode.Throw
 
Field Summary
 java.lang.Object constant
           
 
Fields inherited from class jasm.lang.Bytecode
AALOAD, AASTORE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, BALOAD, BASTORE, BIPUSH, BREAKPOINT, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETSTATIC, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMPDEP1, IMPDEP2, IMUL, INEG, INSTANCEOF, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_W, LDC2_W, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, switchcomp, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, UNUSED, WIDE
 
Constructor Summary
Bytecode.LoadConst(java.lang.Object constant)
           
 
Method Summary
 void addPoolItems(java.util.Set<Constant.Info> constantPool)
          This method adds any constant pool items required by the bytecode to the constantPool.
 boolean equals(java.lang.Object o)
           
 int hashCode()
           
 int stackDiff()
          This method determines the change in stack resulting from this bytecode.
 byte[] toBytes(int offset, java.util.Map<java.lang.String,java.lang.Integer> labelOffsets, java.util.Map<Constant.Info,java.lang.Integer> constantPool)
          Translate this Java bytecode into bytes.
 java.lang.String toString()
           
 
Methods inherited from class jasm.lang.Bytecode
get
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

constant

public final java.lang.Object constant
Constructor Detail

Bytecode.LoadConst

public Bytecode.LoadConst(java.lang.Object constant)
Method Detail

stackDiff

public int stackDiff()
Description copied from class: Bytecode
This method determines the change in stack resulting from this bytecode. For example, +1 indicates the instruction puts one thing onto the stack. Likewise, -2 means this instruction takes two things off the stack. The primary purpose of this method is to help compute the maxStack requirement for a method.

Specified by:
stackDiff in class Bytecode
Returns:

addPoolItems

public void addPoolItems(java.util.Set<Constant.Info> constantPool)
Description copied from class: Bytecode
This method adds any constant pool items required by the bytecode to the constantPool.

Overrides:
addPoolItems in class Bytecode

toBytes

public byte[] toBytes(int offset,
                      java.util.Map<java.lang.String,java.lang.Integer> labelOffsets,
                      java.util.Map<Constant.Info,java.lang.Integer> constantPool)
Description copied from class: Bytecode
Translate this Java bytecode into bytes. If the bytecode requires a constant pool item which is not present in the constantPool map, then the appropriate CONSTANT_Info object is added, and given the next available index.

Specified by:
toBytes in class Bytecode
Parameters:
offset - Offset of this bytecode
labelOffsets - Offsets of any labels used in branch bytecodes
constantPool - Indices of constant pool items used in various bytecodes (e.g. ldc, putfield, etc)
Returns:

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object


Copyright © 2013 David J. Pearce. All Rights Reserved.