joeq.Compiler.BytecodeAnalysis
Class Bytecodes.SWITCH

java.lang.Object
  extended by joeq.Compiler.BytecodeAnalysis.Bytecodes.SWITCH
All Implemented Interfaces:
Bytecodes.CompoundInstruction
Enclosing interface:
Bytecodes

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


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

Constructor Detail

Bytecodes.SWITCH

public Bytecodes.SWITCH(int[] match,
                        java.util.ArrayList targets,
                        Bytecodes.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

Bytecodes.SWITCH

public Bytecodes.SWITCH(int[] match,
                        java.util.ArrayList targets,
                        Bytecodes.InstructionHandle target)
Method Detail

getInstructionList

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

getInstruction

public final Bytecodes.Instruction getInstruction()