class com.oracle.truffle.tck.instrumentation.VerifierInstrument$RootFrameChecker implements com.oracle.truffle.api.instrumentation.ExecutionEventListener
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.tck.instrumentation.VerifierInstrument$RootFrameChecker
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/tck/instrumentation/VerifierInstrument$RootFrameChecker;
public void onEnter(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.materialize:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
invokestatic com.oracle.truffle.tck.instrumentation.VerifierInstrument$RootFrameChecker.checkFrameIsEmpty:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/tck/instrumentation/VerifierInstrument$RootFrameChecker;
0 2 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 2 2 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
MethodParameters:
Name Flags
context
frame
private static void checkFrameIsEmpty(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.frame.MaterializedFrame);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 2
start local 2 1: aload 2
invokestatic com.oracle.truffle.tck.instrumentation.VerifierInstrument$RootFrameChecker.hasParentRootTag:(Lcom/oracle/truffle/api/nodes/Node;)Z
ifne 8
2: aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
invokevirtual com.oracle.truffle.api.nodes.RootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
aload 1
invokeinterface com.oracle.truffle.api.frame.MaterializedFrame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
if_acmpne 8
3: aload 1
invokeinterface com.oracle.truffle.api.frame.MaterializedFrame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.getDefaultValue:()Ljava/lang/Object;
astore 3
start local 3 4: aload 1
invokeinterface com.oracle.truffle.api.frame.MaterializedFrame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.getSlots:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.nodes.Node java.lang.Object top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.frame.FrameSlot
astore 4
start local 4 6: ldc "Top-most nodes tagged with RootTag should have clean frames."
aload 3
aload 1
aload 4
invokeinterface com.oracle.truffle.api.frame.MaterializedFrame.getValue:(Lcom/oracle/truffle/api/frame/FrameSlot;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 3 8: StackMap locals: com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.nodes.Node
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 9 1 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
1 9 2 node Lcom/oracle/truffle/api/nodes/Node;
4 8 3 defaultValue Ljava/lang/Object;
6 7 4 slot Lcom/oracle/truffle/api/frame/FrameSlot;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
context
frame
private static boolean hasParentRootTag(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: iconst_0
ireturn
3: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 1
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode
ifeq 5
aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.hasTag:(Ljava/lang/Class;)Z
ifeq 5
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.tck.instrumentation.VerifierInstrument$RootFrameChecker.hasParentRootTag:(Lcom/oracle/truffle/api/nodes/Node;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 node Lcom/oracle/truffle/api/nodes/Node;
1 6 1 parent Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
node
public void onReturnValue(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/tck/instrumentation/VerifierInstrument$RootFrameChecker;
0 1 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 1 2 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 1 3 result Ljava/lang/Object;
MethodParameters:
Name Flags
context
frame
result
public void onReturnExceptional(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.frame.VirtualFrame, java.lang.Throwable);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/tck/instrumentation/VerifierInstrument$RootFrameChecker;
0 1 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 1 2 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 1 3 exception Ljava/lang/Throwable;
MethodParameters:
Name Flags
context
frame
exception
}
SourceFile: "VerifierInstrument.java"
NestHost: com.oracle.truffle.tck.instrumentation.VerifierInstrument
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final RootTag = com.oracle.truffle.api.instrumentation.StandardTags$RootTag of com.oracle.truffle.api.instrumentation.StandardTags
private RootFrameChecker = com.oracle.truffle.tck.instrumentation.VerifierInstrument$RootFrameChecker of com.oracle.truffle.tck.instrumentation.VerifierInstrument