Class BinaryLongExpressionHelper

java.lang.Object
org.codehaus.groovy.classgen.asm.BinaryExpressionWriter
org.codehaus.groovy.classgen.asm.BinaryLongExpressionHelper
Direct Known Subclasses:
BinaryDoubleExpressionHelper

public class BinaryLongExpressionHelper extends BinaryExpressionWriter
Binary expression helper specialized for long operations.
  • Constructor Details

    • BinaryLongExpressionHelper

      public BinaryLongExpressionHelper(WriterController controller, MethodCaller arraySet, MethodCaller arrayGet)
      Since:
      2.5.0
    • BinaryLongExpressionHelper

      public BinaryLongExpressionHelper(WriterController controller)
      Creates a long-specialized binary expression helper.
      Parameters:
      controller - the active writer controller
  • Method Details

    • doubleTwoOperands

      protected void doubleTwoOperands(org.objectweb.asm.MethodVisitor mv)
      Duplicates the two operands already on the operand stack.
      Specified by:
      doubleTwoOperands in class BinaryExpressionWriter
      Parameters:
      mv - the current method visitor
    • removeTwoOperands

      protected void removeTwoOperands(org.objectweb.asm.MethodVisitor mv)
      Removes the two operands already on the operand stack.
      Specified by:
      removeTwoOperands in class BinaryExpressionWriter
      Parameters:
      mv - the current method visitor
    • getBitwiseOperationBytecode

      protected int getBitwiseOperationBytecode(int type)
      Returns the bitwise opcode for the supplied token.
      Specified by:
      getBitwiseOperationBytecode in class BinaryExpressionWriter
      Parameters:
      type - the normalized token index
      Returns:
      the ASM opcode
    • getCompareCode

      protected int getCompareCode()
      Specified by:
      getCompareCode in class BinaryExpressionWriter
      Returns:
      the ASM compare opcode used by this primitive type
    • getNormalOpResultType

      protected ClassNode getNormalOpResultType()
      Specified by:
      getNormalOpResultType in class BinaryExpressionWriter
      Returns:
      the result type for normal arithmetic operations
    • getShiftOperationBytecode

      protected int getShiftOperationBytecode(int type)
      Returns the shift opcode for the supplied token.
      Specified by:
      getShiftOperationBytecode in class BinaryExpressionWriter
      Parameters:
      type - the normalized token index
      Returns:
      the ASM opcode
    • getStandardOperationBytecode

      protected int getStandardOperationBytecode(int type)
      Returns the arithmetic opcode for the supplied token.
      Specified by:
      getStandardOperationBytecode in class BinaryExpressionWriter
      Parameters:
      type - the normalized token index
      Returns:
      the ASM opcode
    • writeMinusMinus

      protected void writeMinusMinus(org.objectweb.asm.MethodVisitor mv)
      Emits a prefix/postfix decrement.
      Specified by:
      writeMinusMinus in class BinaryExpressionWriter
      Parameters:
      mv - the current method visitor
    • writePlusPlus

      protected void writePlusPlus(org.objectweb.asm.MethodVisitor mv)
      Emits a prefix/postfix increment.
      Specified by:
      writePlusPlus in class BinaryExpressionWriter
      Parameters:
      mv - the current method visitor
    • getDevisionOpResultType

      protected ClassNode getDevisionOpResultType()
      Specified by:
      getDevisionOpResultType in class BinaryExpressionWriter
      Returns:
      the result type for division operations
    • supportsDivision

      protected boolean supportsDivision()
      Overrides:
      supportsDivision in class BinaryExpressionWriter
      Returns:
      whether this primitive helper supports division bytecode directly