de.fub.bytecode.generic
Class SWITCH

java.lang.Object
  |
  +--de.fub.bytecode.generic.SWITCH
All Implemented Interfaces:
CompoundInstruction

public final class SWITCH
extends java.lang.Object
implements CompoundInstruction

SWITCH - Branch depending on int value, generates either LOOKUPSWITCH or TABLESWITCH instruction, depending on whether the match values (int[]) can be sorted with no gaps between the numbers.

Version:
$Id: SWITCH.java,v 1.2 2001/05/09 09:26:57 dahm Exp $
Author:
M. Dahm

Constructor Summary
SWITCH(int[] match, InstructionHandle[] targets, InstructionHandle target)
           
SWITCH(int[] match, InstructionHandle[] targets, InstructionHandle target, int max_gap)
          Template for switch() constructs.
 
Method Summary
 Instruction getInstruction()
           
 InstructionList getInstructionList()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SWITCH

public SWITCH(int[] match,
              InstructionHandle[] targets,
              InstructionHandle target,
              int max_gap)
Template for switch() constructs. If the match array can be sorted in ascending order with gaps no larger than max_gap between the numbers, a TABLESWITCH instruction is generated, and a LOOKUPSWITCH otherwise. The former may be more efficient, but needs more space. Note, that the key array always will be sorted, though we leave the original arrays unaltered.
Parameters:
match - array of match values (case 2: ... case 7: ..., etc.)
targets - the instructions to be branched to for each case
target - the default target
max_gap - maximum gap that may between case branches

SWITCH

public SWITCH(int[] match,
              InstructionHandle[] targets,
              InstructionHandle target)
Method Detail

getInstructionList

public final InstructionList getInstructionList()
Specified by:
getInstructionList in interface CompoundInstruction

getInstruction

public final Instruction getInstruction()