Interface IInstruction

    • Method Detail

      • isFallThrough

        boolean isFallThrough()
        Returns:
        true if the instruction can "fall through" to the following instruction
      • getBranchTargets

        int[] getBranchTargets()
        Returns:
        an array containing the labels this instruction can branch to (not including the following instruction if this instruction 'falls through')
      • redirectTargets

        IInstruction redirectTargets​(int[] targetMap)
        Returns:
        an Instruction equivalent to this one but with any branch labels updated by looking them up in the targetMap array
      • getPoppedCount

        int getPoppedCount()
        Returns:
        the number of values this instruction pops off the working stack
      • getPushedType

        String getPushedType​(String[] poppedTypesToCheck)
        Computes the type of data pushed onto the stack, or null if none is pushed.
        Parameters:
        poppedTypesToCheck - the types of the data popped off the stack by this instruction; if poppedTypes is null, then we don't know the incoming stack types and the result of this method may be less accurate
      • getPushedWordSize

        byte getPushedWordSize()
        Returns:
        the JVM word size of the value this instruction pushes onto the stack, or 0 if this instruction doesn't push anything onto the stack.
      • visit

        void visit​(IInstruction.Visitor v)
        Apply a Visitor to this instruction. We invoke the appropriate Visitor method according to the type of this instruction.
      • toString

        String toString()
        Subclasses must implement toString.
        Overrides:
        toString in class Object
      • isPEI

        boolean isPEI()
        PEI == "Potentially excepting instruction"
        Returns:
        true iff this instruction might throw an exception