edu.arizona.cs.mbel.instructions
Class LEAVE

java.lang.Object
  extended byedu.arizona.cs.mbel.instructions.Instruction
      extended byedu.arizona.cs.mbel.instructions.BranchInstruction
          extended byedu.arizona.cs.mbel.instructions.LEAVE
All Implemented Interfaces:
InstructionTargeter, ShortFormInstruction

public class LEAVE
extends BranchInstruction

Leave an exception clause block.
Stack transition:
... --> ...


Field Summary
static int LEAVE
           
static int LEAVE_S
           
protected static int[] OPCODE_LIST
           
 
Constructor Summary
LEAVE(boolean shortF, InstructionHandle ih)
          Makes a LEAVE object with the given branch target handle, possibly in short form.
LEAVE(int opcode, ClassParser parse)
           
 
Method Summary
protected  void emit(ByteBuffer buffer, ClassEmitter emitter)
          Writes the instruction to the given buffer in raw byte form
 boolean equals(java.lang.Object o)
           
 int getLength()
          Returns the length in bytes of this instruction, as would be found on disk.
 java.lang.String getName()
          Returns the string representation of this instruction (may vary instance-to-instance)
 boolean isShort()
           
 
Methods inherited from class edu.arizona.cs.mbel.instructions.BranchInstruction
containsTarget, getTarget, getTargetHandle, setTarget, setTargetHandle, updateTarget
 
Methods inherited from class edu.arizona.cs.mbel.instructions.Instruction
getOpcode, readInstruction, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LEAVE

public static final int LEAVE
See Also:
Constant Field Values

LEAVE_S

public static final int LEAVE_S
See Also:
Constant Field Values

OPCODE_LIST

protected static final int[] OPCODE_LIST
Constructor Detail

LEAVE

public LEAVE(boolean shortF,
             InstructionHandle ih)
      throws InstructionInitException
Makes a LEAVE object with the given branch target handle, possibly in short form.

Parameters:
shortF - true iff this is a short form instruction (i.e. target handle is within 128 bytes from this instruction)
ih - the target handle

LEAVE

public LEAVE(int opcode,
             ClassParser parse)
      throws java.io.IOException,
             InstructionInitException
Method Detail

isShort

public boolean isShort()

getName

public java.lang.String getName()
Description copied from class: Instruction
Returns the string representation of this instruction (may vary instance-to-instance)

Specified by:
getName in class Instruction
Returns:
a string representing this instruction (i.e. "cpblk")

getLength

public int getLength()
Description copied from class: Instruction
Returns the length in bytes of this instruction, as would be found on disk. This value includes any prefixes prepended to this instruction.

Overrides:
getLength in class Instruction

emit

protected void emit(ByteBuffer buffer,
                    ClassEmitter emitter)
Description copied from class: Instruction
Writes the instruction to the given buffer in raw byte form

Overrides:
emit in class Instruction
Parameters:
buffer - the buffer to write to
emitter - a ClassEmitter for reconciling references to tokens

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class BranchInstruction