Class ShiftInstruction

  • All Implemented Interfaces:
    Constants, IInstruction, IShiftInstruction, java.lang.Cloneable

    public final class ShiftInstruction
    extends Instruction
    implements IShiftInstruction
    ShiftInstructions are distinguished from BinaryOpInstructions because most binary operations in the JVM require both parameters to be the same type, but shifts always take one int parameter.
    • Method Detail

      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • getPushedType

        public java.lang.String getPushedType​(java.lang.String[] types)
        Description copied from class: Instruction
        Computes the type of data pushed onto the stack, or null if none is pushed.
        Specified by:
        getPushedType in interface IInstruction
        Overrides:
        getPushedType in class Instruction
        Parameters:
        types - 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

        public byte getPushedWordSize()
        Specified by:
        getPushedWordSize in interface IInstruction
        Overrides:
        getPushedWordSize in class Instruction
        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

        public void visit​(IInstruction.Visitor v)
                   throws java.lang.NullPointerException
        Description copied from class: Instruction
        Apply a Visitor to this instruction. We invoke the appropriate Visitor method according to the type of this instruction.
        Specified by:
        visit in interface IInstruction
        Specified by:
        visit in class Instruction
        Throws:
        java.lang.NullPointerException
      • isPEI

        public boolean isPEI()
        Description copied from interface: IInstruction
        PEI == "Potentially excepting instruction"
        Specified by:
        isPEI in interface IInstruction
        Returns:
        true iff this instruction might throw an exception