public abstract class com.oracle.truffle.sl.nodes.expression.SLMulNode extends com.oracle.truffle.sl.nodes.SLBinaryNode
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.sl.nodes.expression.SLMulNode
super_class: com.oracle.truffle.sl.nodes.SLBinaryNode
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.sl.nodes.SLBinaryNode.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/nodes/expression/SLMulNode;
protected long mul(long, long);
descriptor: (JJ)J
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 3 0: lload 1
lload 3
invokestatic java.lang.Math.multiplyExact:(JJ)J
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/nodes/expression/SLMulNode;
0 1 1 left J
0 1 3 right J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(rewriteOn = {Ljava/lang/ArithmeticException;})
MethodParameters:
Name Flags
left
right
protected com.oracle.truffle.sl.runtime.SLBigNumber mul(com.oracle.truffle.sl.runtime.SLBigNumber, com.oracle.truffle.sl.runtime.SLBigNumber);
descriptor: (Lcom/oracle/truffle/sl/runtime/SLBigNumber;Lcom/oracle/truffle/sl/runtime/SLBigNumber;)Lcom/oracle/truffle/sl/runtime/SLBigNumber;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.oracle.truffle.sl.runtime.SLBigNumber
dup
aload 1
invokevirtual com.oracle.truffle.sl.runtime.SLBigNumber.getValue:()Ljava/math/BigInteger;
aload 2
invokevirtual com.oracle.truffle.sl.runtime.SLBigNumber.getValue:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial com.oracle.truffle.sl.runtime.SLBigNumber.<init>:(Ljava/math/BigInteger;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/nodes/expression/SLMulNode;
0 1 1 left Lcom/oracle/truffle/sl/runtime/SLBigNumber;
0 1 2 right Lcom/oracle/truffle/sl/runtime/SLBigNumber;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
left
right
protected java.lang.Object typeError(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
invokestatic com.oracle.truffle.sl.SLException.typeError:(Lcom/oracle/truffle/api/nodes/Node;[Ljava/lang/Object;)Lcom/oracle/truffle/sl/SLException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/nodes/expression/SLMulNode;
0 1 1 left Ljava/lang/Object;
0 1 2 right Ljava/lang/Object;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.Fallback()
MethodParameters:
Name Flags
left
right
}
SourceFile: "SLMulNode.java"
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.NodeInfo(shortName = "*")