edu.rice.cs.cunit.classFile.code.instructions
Class BranchInstruction

java.lang.Object
  extended by edu.rice.cs.cunit.classFile.code.instructions.AInstruction
      extended by edu.rice.cs.cunit.classFile.code.instructions.BranchInstruction

public class BranchInstruction
extends AInstruction

Branch Java instruction.

Author:
Mathias Ricken

Field Summary
protected  byte _opcode
          Opcode.
protected  int _target
          Branch target.
 
Constructor Summary
BranchInstruction(byte[] bytecode, int pc, int paddingPC, LineNumberTable lnt)
          Make a new branch instruction from the bytecode stating at pc, padded using paddingPC, and use the line number table for branches.
BranchInstruction(byte opcode, int target)
          Constructor.
 
Method Summary
 boolean equals(java.lang.Object o)
          Return true of this instruction and the other object are equal.
 int[] getBranchTargets()
          Return an array of target indices.
 byte[] getBytecode(int pc, LineNumberTable lnt)
          Get the bytecode for this instruction, padded for the specified program counter value, with branch targets according to the specified line number table * @param pc PC for padding
 int getBytecodeLength(int pc)
          Get the length bytecode for this instruction, padded for the specified program counter value.
 byte getOpcode()
          Get the opcode of this instruction.
 int hashCode()
          Return hash code.
 void setBranchTargets(int[] branchTargets)
          Set the branch target indices.
 java.lang.String toString()
          Return instruction in human-readable form.
 
Methods inherited from class edu.rice.cs.cunit.classFile.code.instructions.AInstruction
getCorrespondingLoad, getCorrespondingStore, makeInstruction, toStringVerbose
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

_opcode

protected byte _opcode
Opcode.


_target

protected int _target
Branch target.

Constructor Detail

BranchInstruction

public BranchInstruction(byte opcode,
                         int target)
Constructor.

Parameters:
opcode - branch opcode
target - target line number

BranchInstruction

public BranchInstruction(byte[] bytecode,
                         int pc,
                         int paddingPC,
                         LineNumberTable lnt)
Make a new branch instruction from the bytecode stating at pc, padded using paddingPC, and use the line number table for branches.

Parameters:
bytecode - bytecode
pc - starting index in bytecode
paddingPC - PC for padding
lnt - line number table for branches
Method Detail

getOpcode

public byte getOpcode()
Get the opcode of this instruction.

Specified by:
getOpcode in class AInstruction
Returns:
opcode

getBytecodeLength

public int getBytecodeLength(int pc)
Get the length bytecode for this instruction, padded for the specified program counter value.

Specified by:
getBytecodeLength in class AInstruction
Parameters:
pc - PC for padding
Returns:
bytecode length

getBytecode

public byte[] getBytecode(int pc,
                          LineNumberTable lnt)
Get the bytecode for this instruction, padded for the specified program counter value, with branch targets according to the specified line number table * @param pc PC for padding

Specified by:
getBytecode in class AInstruction
Parameters:
lnt - line number table for branches
pc - PC for padding
Returns:
bytecode

equals

public boolean equals(java.lang.Object o)
Return true of this instruction and the other object are equal.

Specified by:
equals in class AInstruction
Parameters:
o - other object
Returns:
true if equal

hashCode

public int hashCode()
Return hash code.

Specified by:
hashCode in class AInstruction
Returns:
hash code

getBranchTargets

public int[] getBranchTargets()
Return an array of target indices.

Specified by:
getBranchTargets in class AInstruction
Returns:
array of target indices.

setBranchTargets

public void setBranchTargets(int[] branchTargets)
Set the branch target indices.

Specified by:
setBranchTargets in class AInstruction
Parameters:
branchTargets - array of target indices

toString

public java.lang.String toString()
Return instruction in human-readable form.

Overrides:
toString in class java.lang.Object
Returns:
string representation