final class com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode extends com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode
super_class: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode
{
private final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object value;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.truffle.api.frame.FrameSlot slot;
descriptor: Lcom/oracle/truffle/api/frame/FrameSlot;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
final com.oracle.truffle.api.instrumentation.AllocationReporter allocationReporter;
descriptor: Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
flags: (0x0010) ACC_FINAL
private void <init>(java.lang.String, java.lang.String, com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[], com.oracle.truffle.api.instrumentation.AllocationReporter);
descriptor: (Ljava/lang/String;Ljava/lang/String;[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;Lcom/oracle/truffle/api/instrumentation/AllocationReporter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 3
invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode.<init>:([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
1: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.name:Ljava/lang/String;
2: aload 0
aload 2
invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.parseIdent:(Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
3: aload 0
aload 4
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.allocationReporter:Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
4: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$VariableNode;
0 5 1 name Ljava/lang/String;
0 5 2 identifier Ljava/lang/String;
0 5 3 children [Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
0 5 4 allocationReporter Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
MethodParameters:
Name Flags
name
identifier
children
allocationReporter
private void <init>(java.lang.String, java.lang.Object, com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[], com.oracle.truffle.api.instrumentation.AllocationReporter);
descriptor: (Ljava/lang/String;Ljava/lang/Object;[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;Lcom/oracle/truffle/api/instrumentation/AllocationReporter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 3
invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode.<init>:([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
1: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.name:Ljava/lang/String;
2: aload 0
aload 2
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
3: aload 0
aload 4
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.allocationReporter:Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
4: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$VariableNode;
0 5 1 name Ljava/lang/String;
0 5 2 value Ljava/lang/Object;
0 5 3 children [Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
0 5 4 allocationReporter Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
MethodParameters:
Name Flags
name
value
children
allocationReporter
public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.allocationReporter:Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
invokevirtual com.oracle.truffle.api.instrumentation.AllocationReporter.isActive:()Z
ifeq 2
1: aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.allocationReporter:Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
aconst_null
lconst_0
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.getValueSize:()J
invokevirtual com.oracle.truffle.api.instrumentation.AllocationReporter.onEnter:(Ljava/lang/Object;JJ)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.slot:Lcom/oracle/truffle/api/frame/FrameSlot;
ifnonnull 5
3: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
4: aload 0
aload 1
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.name:Ljava/lang/String;
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findOrAddFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.slot:Lcom/oracle/truffle/api/frame/FrameSlot;
5: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.slot:Lcom/oracle/truffle/api/frame/FrameSlot;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.setObject:(Lcom/oracle/truffle/api/frame/FrameSlot;Ljava/lang/Object;)V
6: aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.allocationReporter:Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
invokevirtual com.oracle.truffle.api.instrumentation.AllocationReporter.isActive:()Z
ifeq 8
7: aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.allocationReporter:Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
lconst_0
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.getValueSize:()J
invokevirtual com.oracle.truffle.api.instrumentation.AllocationReporter.onReturnValue:(Ljava/lang/Object;JJ)V
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
pop
9: aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$VariableNode;
0 10 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
MethodParameters:
Name Flags
frame
private long getValueSize();
descriptor: ()J
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
instanceof java.lang.Byte
ifne 1
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
instanceof java.lang.Boolean
ifeq 2
1: StackMap locals:
StackMap stack:
lconst_1
lreturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
instanceof java.lang.Character
ifeq 4
3: ldc 2
lreturn
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
instanceof java.lang.Short
ifeq 6
5: ldc 2
lreturn
6: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
instanceof java.lang.Integer
ifne 7
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
instanceof java.lang.Float
ifeq 8
7: StackMap locals:
StackMap stack:
ldc 4
lreturn
8: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
instanceof java.lang.Long
ifne 9
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
instanceof java.lang.Double
ifeq 10
9: StackMap locals:
StackMap stack:
ldc 8
lreturn
10: StackMap locals:
StackMap stack:
ldc -9223372036854775808
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$VariableNode;
protected com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode
dup
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.name:Ljava/lang/String;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.value:Ljava/lang/Object;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.children:[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
aload 1
invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.cloneUninitialized:([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;Ljava/util/Set;)[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.allocationReporter:Lcom/oracle/truffle/api/instrumentation/AllocationReporter;
invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode.<init>:(Ljava/lang/String;Ljava/lang/Object;[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;Lcom/oracle/truffle/api/instrumentation/AllocationReporter;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$VariableNode;
0 1 1 materializedTags Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
MethodParameters:
Name Flags
materializedTags
}
SourceFile: "InstrumentationTestLanguage.java"
NestHost: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract BaseNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
public abstract InstrumentedNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
private final VariableNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage