org.ow2.asmdex.tree
Class JumpInsnNode

java.lang.Object
  extended by org.ow2.asmdex.tree.AbstractInsnNode
      extended by org.ow2.asmdex.tree.JumpInsnNode

public class JumpInsnNode
extends AbstractInsnNode

A node that represents a jump instruction. A jump instruction is an instruction that may jump to another instruction.

Author:
Eric Bruneton, Julien Névo (adaptation to AsmDex).

Field Summary
 LabelNode label
          The operand of this instruction.
 int registerA
          Register A.
 int registerB
          Register B.
 
Fields inherited from class org.ow2.asmdex.tree.AbstractInsnNode
ARRAY_LENGTH_INSN, ARRAY_OPERATION_INSN, FIELD_INSN, FILL_ARRAY_DATA_INSN, INSN, INT_INSN, JUMP_INSN, LABEL_INSN, LINE, LOOKUPSWITCH_INSN, METHOD_INSN, MULTIANEWARRAY_INSN, opcode, OPERATION_INSN, STRING_INSN, TABLESWITCH_INSN, TYPE_INSN, VAR_INSN, VAR_INSN_LONG
 
Constructor Summary
JumpInsnNode(int opcode, LabelNode label, int registerA, int registerB)
          Constructs a new JumpInsnNode.
 
Method Summary
 void accept(MethodVisitor mv)
          Makes the given code visitor visit this instruction.
 AbstractInsnNode clone(java.util.Map<LabelNode,LabelNode> labels)
          Returns a copy of this instruction.
 int getType()
          Returns the type of this instruction.
 void setOpcode(int opcode)
          Sets the opcode of this instruction.
 
Methods inherited from class org.ow2.asmdex.tree.AbstractInsnNode
getNext, getOpcode, getPrevious
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

label

public LabelNode label
The operand of this instruction. This operand is a label that designates the instruction to which this instruction may jump.


registerA

public int registerA
Register A. Ignored for unconditional jump.


registerB

public int registerB
Register B. Ignored for unconditional jump or zero tests (IF-EQZ, IF-NEZ...).

Constructor Detail

JumpInsnNode

public JumpInsnNode(int opcode,
                    LabelNode label,
                    int registerA,
                    int registerB)
Constructs a new JumpInsnNode.

Parameters:
opcode - the opcode of the type instruction to be constructed. This opcode is either GOTO, IF-EQ, IF-NE, IF-LT, IF-GE, IF-GT, IF-LE, or IF-EQZ, IF-NEZ, IF-LTZ, IF-GEZ, IF-GTZ, IF-LEZ.
label - the operand of the instruction to be constructed. This operand is a label that designates the instruction to which the jump instruction may jump.
registerA - the register A. Ignored for unconditional jump.
registerB - the register B. Ignored for unconditional jump or zero tests (IF-EQZ, IF-NEZ...).
Method Detail

setOpcode

public void setOpcode(int opcode)
Sets the opcode of this instruction.

Parameters:
opcode - the new instruction opcode. This opcode is either GOTO, IF-EQ, IF-NE, IF-LT, IF-GE, IF-GT, IF-LE, IF-EQZ, IF-NEZ, IF-LTZ, IF-GEZ, IF-GTZ, IF-LEZ.

getType

public int getType()
Description copied from class: AbstractInsnNode
Returns the type of this instruction.

Specified by:
getType in class AbstractInsnNode
Returns:
the type of this instruction, i.e. one the constants defined in this class.

accept

public void accept(MethodVisitor mv)
Description copied from class: AbstractInsnNode
Makes the given code visitor visit this instruction.

Specified by:
accept in class AbstractInsnNode
Parameters:
mv - a code visitor.

clone

public AbstractInsnNode clone(java.util.Map<LabelNode,LabelNode> labels)
Description copied from class: AbstractInsnNode
Returns a copy of this instruction.

Specified by:
clone in class AbstractInsnNode
Parameters:
labels - a map from LabelNodes to cloned LabelNodes.
Returns:
a copy of this instruction. The returned instruction does not belong to any InsnList.