public class com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray extends com.oracle.truffle.nfi.test.NFITest$NFITestRootNode
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray
super_class: com.oracle.truffle.nfi.test.NFITest$NFITestRootNode
{
private final java.lang.Class<?> finalJavaType;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<*>;
private final java.lang.Object store;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object sum;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
com.oracle.truffle.api.interop.InteropLibrary storeInterop;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
com.oracle.truffle.api.interop.InteropLibrary sumInterop;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
final com.oracle.truffle.nfi.test.ArrayNFITest this$0;
descriptor: Lcom/oracle/truffle/nfi/test/ArrayNFITest;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(com.oracle.truffle.nfi.test.ArrayNFITest);
descriptor: (Lcom/oracle/truffle/nfi/test/ArrayNFITest;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.this$0:Lcom/oracle/truffle/nfi/test/ArrayNFITest;
aload 0
invokespecial com.oracle.truffle.nfi.test.NFITest$NFITestRootNode.<init>:()V
1: aload 0
aload 1
getfield com.oracle.truffle.nfi.test.ArrayNFITest.javaType:Ljava/lang/Class;
putfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.finalJavaType:Ljava/lang/Class;
2: aload 0
new java.lang.StringBuilder
dup
ldc "store_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
getfield com.oracle.truffle.nfi.test.ArrayNFITest.nativeType:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "([%s], uint32, %s) : void"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
getfield com.oracle.truffle.nfi.test.ArrayNFITest.nativeType:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
iconst_1
aload 1
getfield com.oracle.truffle.nfi.test.ArrayNFITest.nativeType:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.nfi.test.ArrayNFITest.lookupAndBind:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.store:Ljava/lang/Object;
3: aload 0
new java.lang.StringBuilder
dup
ldc "sum_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
getfield com.oracle.truffle.nfi.test.ArrayNFITest.nativeType:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "([%s], uint32) : %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
getfield com.oracle.truffle.nfi.test.ArrayNFITest.nativeType:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
iconst_1
aload 1
getfield com.oracle.truffle.nfi.test.ArrayNFITest.nativeType:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.nfi.test.ArrayNFITest.lookupAndBind:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.sum:Ljava/lang/Object;
4: aload 0
aload 0
getfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.store:Ljava/lang/Object;
invokestatic com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.getInterop:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/InteropLibrary;
putfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.storeInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
5: aload 0
aload 0
getfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.sum:Ljava/lang/Object;
invokestatic com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.getInterop:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/InteropLibrary;
putfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.sumInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/nfi/test/ArrayNFITest$CreateAndSumArray;
MethodParameters:
Name Flags
this$0 final
private void verifyArray(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 17
3: StackMap locals: int int
StackMap stack:
aload 1
iload 3
invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
astore 4
start local 4 4: ldc "array element"
aload 4
aload 0
getfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.finalJavaType:Ljava/lang/Class;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.CoreMatchers.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
5: lconst_0
lstore 5
start local 5 6: iload 3
iconst_1
iadd
i2l
lstore 7
start local 7 7: aload 4
instanceof java.lang.Number
ifeq 10
8: aload 4
checkcast java.lang.Number
invokevirtual java.lang.Number.longValue:()J
lstore 5
9: goto 15
StackMap locals: java.lang.Object long long
StackMap stack:
10: aload 4
instanceof java.lang.Character
ifeq 13
11: aload 4
checkcast java.lang.Character
invokevirtual java.lang.Character.charValue:()C
i2l
lstore 5
12: goto 15
StackMap locals:
StackMap stack:
13: aload 4
instanceof java.lang.Boolean
ifeq 15
14: return
15: StackMap locals:
StackMap stack:
ldc "array element"
lload 7
lload 5
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
end local 7 end local 5 end local 4 16: iinc 3 1
StackMap locals:
StackMap stack:
17: iload 3
iload 2
if_icmplt 3
end local 3 18: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/nfi/test/ArrayNFITest$CreateAndSumArray;
0 19 1 array Ljava/lang/Object;
1 19 2 length I
2 18 3 i I
4 16 4 elem Ljava/lang/Object;
6 16 5 actual J
7 16 7 expected J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
array
public java.lang.Object executeTest(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getArguments:()[Ljava/lang/Object;
iconst_0
aaload
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 2
start local 2 1: aload 0
getfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.finalJavaType:Ljava/lang/Class;
iload 2
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
astore 3
start local 3 2: getstatic com.oracle.truffle.nfi.test.ArrayNFITest.runWithPolyglot:Lcom/oracle/truffle/tck/TruffleRunner$RunWithPolyglotRule;
invokevirtual com.oracle.truffle.tck.TruffleRunner$RunWithPolyglotRule.getTruffleTestEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 3
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 7
5: StackMap locals: com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray com.oracle.truffle.api.frame.VirtualFrame int java.lang.Object java.lang.Object int
StackMap stack:
aload 0
getfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.storeInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.store:Ljava/lang/Object;
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 5
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
6: iinc 5 1
StackMap locals:
StackMap stack:
7: iload 5
iload 2
if_icmplt 5
end local 5 8: aload 0
aload 3
invokevirtual com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.verifyArray:(Ljava/lang/Object;)V
9: aload 0
getfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.sumInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray.sum:Ljava/lang/Object;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
10: areturn
11: StackMap locals: com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray com.oracle.truffle.api.frame.VirtualFrame int java.lang.Object java.lang.Object
StackMap stack: com.oracle.truffle.api.interop.InteropException
astore 5
start local 5 12: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
13: new java.lang.AssertionError
dup
aload 5
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/nfi/test/ArrayNFITest$CreateAndSumArray;
0 14 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 14 2 arrayLength I
2 14 3 array Ljava/lang/Object;
3 14 4 wrappedArray Ljava/lang/Object;
4 8 5 i I
12 14 5 ex Lcom/oracle/truffle/api/interop/InteropException;
Exception table:
from to target type
3 10 11 Class com.oracle.truffle.api.interop.InteropException
MethodParameters:
Name Flags
frame
}
SourceFile: "ArrayNFITest.java"
NestHost: com.oracle.truffle.nfi.test.ArrayNFITest
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public CreateAndSumArray = com.oracle.truffle.nfi.test.ArrayNFITest$CreateAndSumArray of com.oracle.truffle.nfi.test.ArrayNFITest
protected abstract NFITestRootNode = com.oracle.truffle.nfi.test.NFITest$NFITestRootNode of com.oracle.truffle.nfi.test.NFITest
public final RunWithPolyglotRule = com.oracle.truffle.tck.TruffleRunner$RunWithPolyglotRule of com.oracle.truffle.tck.TruffleRunner