jasm.lang
Class Bytecode.New

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

public static final class Bytecode.New
extends Bytecode

Represents the new, newarray and anewarray, multinewarray bytecodes.


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
 int dims
           
 JvmType type
           
 
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.New(JvmType type)
           
Bytecode.New(JvmType type, int dims)
           
 
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

type

public final JvmType type

dims

public final int dims
Constructor Detail

Bytecode.New

public Bytecode.New(JvmType type)

Bytecode.New

public Bytecode.New(JvmType type,
                    int dims)
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.