final class com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode extends com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode implements com.oracle.truffle.api.nodes.RepeatingNode
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode
super_class: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode
{
private final int loopCount;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean infinite;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode this$1;
descriptor: Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$WhileLoopNode;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode, java.lang.Object, com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[]);
descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$WhileLoopNode;Ljava/lang/Object;[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode.this$1:Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$WhileLoopNode;
1: aload 0
aload 3
invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode.<init>:([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
2: iconst_0
istore 4
start local 4 3: aload 2
instanceof java.lang.Double
ifeq 8
4: aload 2
checkcast java.lang.Double
invokevirtual java.lang.Double.isInfinite:()Z
ifeq 6
5: iconst_1
istore 4
6: StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode java.lang.Object com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[] int
StackMap stack:
aload 0
aload 2
checkcast java.lang.Double
invokevirtual java.lang.Double.intValue:()I
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode.loopCount:I
7: goto 12
StackMap locals:
StackMap stack:
8: aload 2
instanceof java.lang.Integer
ifeq 11
9: aload 0
aload 2
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode.loopCount:I
10: goto 12
11: StackMap locals:
StackMap stack:
new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError
dup
new java.lang.StringBuilder
dup
ldc "Invalid loop count "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 0
iload 4
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode.infinite:Z
13: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode;
0 14 2 loopCount Ljava/lang/Object;
0 14 3 children [Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
3 14 4 inf Z
MethodParameters:
Name Flags
this$0 final
loopCount
children
void <init>(com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode, int, boolean, com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[]);
descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$WhileLoopNode;IZ[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode.this$1:Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$WhileLoopNode;
1: aload 0
aload 4
invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode.<init>:([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
2: aload 0
iload 2
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode.loopCount:I
3: aload 0
iload 3
putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode.infinite:Z
4: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode;
0 5 2 loopCount I
0 5 3 infinite Z
0 5 4 children [Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
MethodParameters:
Name Flags
this$0 final
loopCount
infinite
children
public boolean isInstrumentable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode;
public boolean executeRepeating(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode.this$1:Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$WhileLoopNode;
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode.loopIndexSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getInt:(Lcom/oracle/truffle/api/frame/FrameSlot;)I
istore 2
start local 2 1: goto 5
end local 2 StackMap locals:
StackMap stack: com.oracle.truffle.api.frame.FrameSlotTypeException
2: astore 3
start local 3 3: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
4: new java.lang.AssertionError
dup
aload 3
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 3 start local 2 5: StackMap locals: int
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode.infinite:Z
ifne 6
iload 2
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode.loopCount:I
if_icmpge 10
6: 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;
astore 3
start local 3 7: aload 1
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode.this$1:Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$WhileLoopNode;
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode.loopIndexSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
iload 2
iconst_1
iadd
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.setInt:(Lcom/oracle/truffle/api/frame/FrameSlot;I)V
8: aload 1
aload 0
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode.this$1:Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$WhileLoopNode;
getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode.loopResultSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
aload 3
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.setObject:(Lcom/oracle/truffle/api/frame/FrameSlot;Ljava/lang/Object;)V
9: iconst_1
ireturn
end local 3 10: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode;
0 11 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 2 2 i I
5 11 2 i I
3 5 3 e Lcom/oracle/truffle/api/frame/FrameSlotTypeException;
7 10 3 resultValue Ljava/lang/Object;
Exception table:
from to target type
0 1 2 Class com.oracle.truffle.api.frame.FrameSlotTypeException
MethodParameters:
Name Flags
frame
}
SourceFile: "InstrumentationTestLanguage.java"
NestHost: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
InnerClasses:
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 LanguageError = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
final WhileLoopNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
final LoopConditionNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode