Package org.codehaus.groovy.classgen.asm
Class BinaryLongExpressionHelper
java.lang.Object
org.codehaus.groovy.classgen.asm.BinaryExpressionWriter
org.codehaus.groovy.classgen.asm.BinaryLongExpressionHelper
- Direct Known Subclasses:
BinaryDoubleExpressionHelper
Binary expression helper specialized for
long operations.-
Field Summary
Fields inherited from class org.codehaus.groovy.classgen.asm.BinaryExpressionWriter
stdCompareCodes -
Constructor Summary
ConstructorsConstructorDescriptionBinaryLongExpressionHelper(WriterController controller) Creates along-specialized binary expression helper.BinaryLongExpressionHelper(WriterController controller, MethodCaller arraySet, MethodCaller arrayGet) -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoubleTwoOperands(org.objectweb.asm.MethodVisitor mv) Duplicates the two operands already on the operand stack.protected intgetBitwiseOperationBytecode(int type) Returns the bitwise opcode for the supplied token.protected intprotected ClassNodeprotected ClassNodeprotected intgetShiftOperationBytecode(int type) Returns the shift opcode for the supplied token.protected intgetStandardOperationBytecode(int type) Returns the arithmetic opcode for the supplied token.protected voidremoveTwoOperands(org.objectweb.asm.MethodVisitor mv) Removes the two operands already on the operand stack.protected booleanprotected voidwriteMinusMinus(org.objectweb.asm.MethodVisitor mv) Emits a prefix/postfix decrement.protected voidwritePlusPlus(org.objectweb.asm.MethodVisitor mv) Emits a prefix/postfix increment.Methods inherited from class org.codehaus.groovy.classgen.asm.BinaryExpressionWriter
arrayGet, arraySet, getArrayGetCaller, getArrayGetResultType, getArraySetCaller, getController, setArraySetAndGet, write, writeBitwiseOp, writeDivision, writePostOrPrefixMethod, writeShiftOp, writeSpaceship, writeStdCompare, writeStdOperators
-
Constructor Details
-
BinaryLongExpressionHelper
public BinaryLongExpressionHelper(WriterController controller, MethodCaller arraySet, MethodCaller arrayGet) - Since:
- 2.5.0
-
BinaryLongExpressionHelper
Creates along-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:
doubleTwoOperandsin classBinaryExpressionWriter- 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:
removeTwoOperandsin classBinaryExpressionWriter- Parameters:
mv- the current method visitor
-
getBitwiseOperationBytecode
protected int getBitwiseOperationBytecode(int type) Returns the bitwise opcode for the supplied token.- Specified by:
getBitwiseOperationBytecodein classBinaryExpressionWriter- Parameters:
type- the normalized token index- Returns:
- the ASM opcode
-
getCompareCode
protected int getCompareCode()- Specified by:
getCompareCodein classBinaryExpressionWriter- Returns:
- the ASM compare opcode used by this primitive type
-
getNormalOpResultType
- Specified by:
getNormalOpResultTypein classBinaryExpressionWriter- Returns:
- the result type for normal arithmetic operations
-
getShiftOperationBytecode
protected int getShiftOperationBytecode(int type) Returns the shift opcode for the supplied token.- Specified by:
getShiftOperationBytecodein classBinaryExpressionWriter- 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:
getStandardOperationBytecodein classBinaryExpressionWriter- 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:
writeMinusMinusin classBinaryExpressionWriter- Parameters:
mv- the current method visitor
-
writePlusPlus
protected void writePlusPlus(org.objectweb.asm.MethodVisitor mv) Emits a prefix/postfix increment.- Specified by:
writePlusPlusin classBinaryExpressionWriter- Parameters:
mv- the current method visitor
-
getDevisionOpResultType
- Specified by:
getDevisionOpResultTypein classBinaryExpressionWriter- Returns:
- the result type for division operations
-
supportsDivision
protected boolean supportsDivision()- Overrides:
supportsDivisionin classBinaryExpressionWriter- Returns:
- whether this primitive helper supports division bytecode directly
-