public class com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath 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.PointerNFITest$TestSlowPath
super_class: com.oracle.truffle.nfi.test.NFITest$NFITestRootNode
{
com.oracle.truffle.api.interop.InteropLibrary interop;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private final java.lang.Object incrementByte;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object incrementShort;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object incrementInt;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object incrementLong;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object incrementFloat;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object incrementDouble;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object getFirstElement;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.nfi.test.NFITest$NFITestRootNode.<init>:()V
1: aload 0
invokestatic com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.getInterop:()Lcom/oracle/truffle/api/interop/InteropLibrary;
putfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
2: aload 0
ldc "increment_SINT8"
ldc "(SINT8):SINT8"
invokestatic com.oracle.truffle.nfi.test.PointerNFITest.lookupAndBind:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementByte:Ljava/lang/Object;
3: aload 0
ldc "increment_SINT16"
ldc "(SINT16):SINT16"
invokestatic com.oracle.truffle.nfi.test.PointerNFITest.lookupAndBind:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementShort:Ljava/lang/Object;
4: aload 0
ldc "increment_SINT32"
ldc "(SINT32):SINT32"
invokestatic com.oracle.truffle.nfi.test.PointerNFITest.lookupAndBind:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementInt:Ljava/lang/Object;
5: aload 0
ldc "increment_SINT64"
ldc "(SINT64):SINT64"
invokestatic com.oracle.truffle.nfi.test.PointerNFITest.lookupAndBind:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementLong:Ljava/lang/Object;
6: aload 0
ldc "increment_FLOAT"
ldc "(FLOAT):FLOAT"
invokestatic com.oracle.truffle.nfi.test.PointerNFITest.lookupAndBind:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementFloat:Ljava/lang/Object;
7: aload 0
ldc "increment_DOUBLE"
ldc "(DOUBLE):DOUBLE"
invokestatic com.oracle.truffle.nfi.test.PointerNFITest.lookupAndBind:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementDouble:Ljava/lang/Object;
8: aload 0
ldc "getFirstElement"
ldc "(POINTER):DOUBLE"
invokestatic com.oracle.truffle.nfi.test.PointerNFITest.lookupAndBind:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.getFirstElement:Ljava/lang/Object;
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/nfi/test/PointerNFITest$TestSlowPath;
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=9, 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
astore 2
start local 2 1: aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isPointer:(Ljava/lang/Object;)Z
istore 3
start local 3 2: aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementByte:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_0
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
3: aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementShort:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_0
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
4: aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementInt:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_0
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
5: aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementLong:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_0
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: aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementFloat:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_0
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
7: aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementDouble:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_0
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
8: aconst_null
astore 4
start local 4 9: aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNumber:(Ljava/lang/Object;)Z
ifeq 14
10: aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.incrementDouble:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 4
11: aload 4
ifnonnull 14
12: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
13: ldc "incremented"
aload 4
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
14: StackMap locals: java.lang.Object int java.lang.Object
StackMap stack:
iload 3
ifne 18
15: aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isPointer:(Ljava/lang/Object;)Z
ifeq 18
16: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
17: ldc "unexpected TO_NATIVE"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
18: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.getFirstElement:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asDouble:(Ljava/lang/Object;)D
dstore 5
start local 5 19: aload 4
ifnull 24
20: aload 0
getfield com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 4
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asDouble:(Ljava/lang/Object;)D
dstore 7
start local 7 21: dload 7
dload 5
dconst_1
dadd
dcmpl
ifeq 24
22: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
23: ldc "incremented"
dload 5
dconst_1
dadd
dload 7
ldc 4.9E-324
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;DDD)V
end local 7 24: StackMap locals: double
StackMap stack:
dload 5
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
areturn
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 25 0 this Lcom/oracle/truffle/nfi/test/PointerNFITest$TestSlowPath;
0 25 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 25 2 vector Ljava/lang/Object;
2 25 3 startedAsNative Z
9 25 4 incremented Ljava/lang/Object;
19 25 5 firstElement D
21 24 7 inc D
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
MethodParameters:
Name Flags
frame
}
SourceFile: "PointerNFITest.java"
NestHost: com.oracle.truffle.nfi.test.PointerNFITest
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
protected abstract NFITestRootNode = com.oracle.truffle.nfi.test.NFITest$NFITestRootNode of com.oracle.truffle.nfi.test.NFITest
public TestSlowPath = com.oracle.truffle.nfi.test.PointerNFITest$TestSlowPath of com.oracle.truffle.nfi.test.PointerNFITest