org.ow2.asmdex.tree
Class OperationInsnNode

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

public class OperationInsnNode
extends AbstractInsnNode

A node that represents an instruction that performs an unary or binary operation on one or two sources or one array, possibly a literal value, to a destination register.

Author:
Julien Névo.

Field Summary
 int destinationRegister
          The destination register or pair.
 int firstSourceRegister
          The first source register or pair.
 int secondSourceRegister
          secondSourceRegister the second source register or pair.
 int value
          value literal value.
 
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
OperationInsnNode(int opcode, int destinationRegister, int firstSourceRegister, int secondSourceRegister, int value)
          Constructs a new OperationInsnNode.
 
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

destinationRegister

public int destinationRegister
The destination register or pair. For BINOP/2ADDR, it should be the same as firstSourceRegister.


firstSourceRegister

public int firstSourceRegister
The first source register or pair. For BINOP/2ADDR, it should be the same as destinationRegister.


secondSourceRegister

public int secondSourceRegister
secondSourceRegister the second source register or pair. Ignored for UNOP, BINOP/LIT16, BINOP/LIT8.


value

public int value
value literal value. Only useful for BINOP/LIT16, BINOP/LIT8.

Constructor Detail

OperationInsnNode

public OperationInsnNode(int opcode,
                         int destinationRegister,
                         int firstSourceRegister,
                         int secondSourceRegister,
                         int value)
Constructs a new OperationInsnNode.

Parameters:
opcode - the opcode of the type instruction to be visited. This opcode is in either of these categories : UNOP, BINOP, BINOP/2ADDR, BINOP/LIT16, BINOP/LIT8.
destinationRegister - the destination register or pair. For BINOP/2ADDR, it should be the same as firstSourceRegister.
firstSourceRegister - the first source register or pair. For BINOP/2ADDR, it should be the same as destinationRegister.
secondSourceRegister - the second source register or pair. Ignored for UNOP, BINOP/LIT16, BINOP/LIT8.
value - literal value. Only useful for BINOP/LIT16, BINOP/LIT8.
Method Detail

setOpcode

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

Parameters:
opcode - the new instruction opcode. This opcode is either CONST-STRING or CONST-STRING/JUMBO.

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.