jasm.lang
Class Bytecode.IfCmp

java.lang.Object
  extended by jasm.lang.Bytecode
      extended by jasm.lang.Bytecode.Branch
          extended by jasm.lang.Bytecode.IfCmp
Enclosing class:
Bytecode

public static class Bytecode.IfCmp
extends Bytecode.Branch

This represents the bytecodes ifacmp_XX and ificmp_xx


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 cond
           
static int EQ
           
static int GE
           
static int GT
           
static int LE
           
static int LT
           
static int NE
           
static java.lang.String[] str
           
 JvmType type
           
 
Fields inherited from class jasm.lang.Bytecode.Branch
islong, label
 
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.IfCmp(int cond, JvmType type, java.lang.String label)
           
Bytecode.IfCmp(int cond, JvmType type, java.lang.String label, boolean islong)
           
 
Method Summary
 boolean equals(java.lang.Object o)
           
 Bytecode.IfCmp fixLong()
           
 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
addPoolItems, get
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

EQ

public static final int EQ
See Also:
Constant Field Values

NE

public static final int NE
See Also:
Constant Field Values

LT

public static final int LT
See Also:
Constant Field Values

GE

public static final int GE
See Also:
Constant Field Values

GT

public static final int GT
See Also:
Constant Field Values

LE

public static final int LE
See Also:
Constant Field Values

str

public static final java.lang.String[] str

cond

public final int cond

type

public final JvmType type
Constructor Detail

Bytecode.IfCmp

public Bytecode.IfCmp(int cond,
                      JvmType type,
                      java.lang.String label)

Bytecode.IfCmp

public Bytecode.IfCmp(int cond,
                      JvmType type,
                      java.lang.String label,
                      boolean islong)
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:

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:

fixLong

public Bytecode.IfCmp fixLong()
Specified by:
fixLong in class Bytecode.Branch

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.