public class com.oracle.truffle.nfi.test.NumericNFITest extends com.oracle.truffle.nfi.test.NFITest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.nfi.test.NumericNFITest
super_class: com.oracle.truffle.nfi.test.NFITest
{
public static final com.oracle.truffle.nfi.spi.types.NativeSimpleType[] NUMERIC_TYPES;
descriptor: [Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public com.oracle.truffle.nfi.spi.types.NativeSimpleType type;
descriptor: Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
flags: (0x0001) ACC_PUBLIC
RuntimeVisibleAnnotations:
org.junit.runners.Parameterized$Parameter(value = 0)
private final java.lang.Object callback;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object negCallback;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object wrap;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$nfi$spi$types$NativeSimpleType;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 10
anewarray com.oracle.truffle.nfi.spi.types.NativeSimpleType
dup
iconst_0
1: getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT8:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
iconst_1
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT8:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
iconst_2
2: getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT16:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
iconst_3
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT16:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
iconst_4
3: getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT32:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
iconst_5
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT32:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
bipush 6
4: getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT64:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
bipush 7
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT64:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
bipush 8
5: getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.FLOAT:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
bipush 9
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.DOUBLE:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
6: putstatic com.oracle.truffle.nfi.test.NumericNFITest.NUMERIC_TYPES:[Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
7: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.nfi.test.NFITest.<init>:()V
1: aload 0
new com.oracle.truffle.nfi.test.interop.TestCallback
dup
iconst_1
aload 0
invokedynamic call(Lcom/oracle/truffle/nfi/test/NumericNFITest;)Lcom/oracle/truffle/nfi/test/interop/TestCallback$Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
([Ljava/lang/Object;)Ljava/lang/Object;
com/oracle/truffle/nfi/test/NumericNFITest.lambda$0([Ljava/lang/Object;)Ljava/lang/Object; (7)
([Ljava/lang/Object;)Ljava/lang/Object;
invokespecial com.oracle.truffle.nfi.test.interop.TestCallback.<init>:(ILcom/oracle/truffle/nfi/test/interop/TestCallback$Function;)V
putfield com.oracle.truffle.nfi.test.NumericNFITest.callback:Ljava/lang/Object;
2: aload 0
new com.oracle.truffle.nfi.test.interop.TestCallback
dup
iconst_1
aload 0
invokedynamic call(Lcom/oracle/truffle/nfi/test/NumericNFITest;)Lcom/oracle/truffle/nfi/test/interop/TestCallback$Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
([Ljava/lang/Object;)Ljava/lang/Object;
com/oracle/truffle/nfi/test/NumericNFITest.lambda$1([Ljava/lang/Object;)Ljava/lang/Object; (7)
([Ljava/lang/Object;)Ljava/lang/Object;
invokespecial com.oracle.truffle.nfi.test.interop.TestCallback.<init>:(ILcom/oracle/truffle/nfi/test/interop/TestCallback$Function;)V
putfield com.oracle.truffle.nfi.test.NumericNFITest.negCallback:Ljava/lang/Object;
3: aload 0
new com.oracle.truffle.nfi.test.interop.TestCallback
dup
iconst_1
aload 0
invokedynamic call(Lcom/oracle/truffle/nfi/test/NumericNFITest;)Lcom/oracle/truffle/nfi/test/interop/TestCallback$Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
([Ljava/lang/Object;)Ljava/lang/Object;
com/oracle/truffle/nfi/test/NumericNFITest.lambda$2([Ljava/lang/Object;)Ljava/lang/Object; (7)
([Ljava/lang/Object;)Ljava/lang/Object;
invokespecial com.oracle.truffle.nfi.test.interop.TestCallback.<init>:(ILcom/oracle/truffle/nfi/test/interop/TestCallback$Function;)V
putfield com.oracle.truffle.nfi.test.NumericNFITest.wrap:Ljava/lang/Object;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
public static java.util.Collection<java.lang.Object[]> data();
descriptor: ()Ljava/util/Collection;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=0
0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 0
start local 0 1: getstatic com.oracle.truffle.nfi.test.NumericNFITest.NUMERIC_TYPES:[Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 5
StackMap locals: java.util.ArrayList top int int com.oracle.truffle.nfi.spi.types.NativeSimpleType[]
StackMap stack:
2: aload 4
iload 2
aaload
astore 1
start local 1 3: aload 0
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 1 4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
iload 3
if_icmplt 2
6: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 7 0 ret Ljava/util/ArrayList<[Ljava/lang/Object;>;
3 4 1 type Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
Signature: ()Ljava/util/Collection<[Ljava/lang/Object;>;
RuntimeVisibleAnnotations:
org.junit.runners.Parameterized$Parameters(name = "{0}")
private org.hamcrest.Matcher<java.lang.Object> number(long);
descriptor: (J)Lorg/hamcrest/Matcher;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.nfi.test.NumericNFITest$NumberMatcher
dup
aload 0
lload 1
invokespecial com.oracle.truffle.nfi.test.NumericNFITest$NumberMatcher.<init>:(Lcom/oracle/truffle/nfi/test/NumericNFITest;J)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 1 1 expected J
Signature: (J)Lorg/hamcrest/Matcher<Ljava/lang/Object;>;
MethodParameters:
Name Flags
expected
static long unboxNumber(java.lang.Object);
descriptor: (Ljava/lang/Object;)J
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: ldc "isNumber"
getstatic com.oracle.truffle.nfi.test.NumericNFITest.UNCACHED_INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNumber:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
1: ldc "fitsInLong"
getstatic com.oracle.truffle.nfi.test.NumericNFITest.UNCACHED_INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInLong:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
2: getstatic com.oracle.truffle.nfi.test.NumericNFITest.UNCACHED_INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asLong:(Ljava/lang/Object;)J
3: lreturn
4: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
astore 1
start local 1 5: new java.lang.AssertionError
dup
aload 1
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 arg Ljava/lang/Object;
5 6 1 ex Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
Exception table:
from to target type
2 3 4 Class com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
arg
public void testIncrement(com.oracle.truffle.api.CallTarget);
descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_1
anewarray java.lang.Object
dup
iconst_0
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: ldc "return"
aload 2
aload 0
ldc 43
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 3 1 callTarget Lcom/oracle/truffle/api/CallTarget;
1 3 2 ret Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
RuntimeVisibleParameterAnnotations:
0:
com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestIncrementNode;)
MethodParameters:
Name Flags
callTarget
private long fixSign(long);
descriptor: (J)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.nfi.test.NumericNFITest.$SWITCH_TABLE$com$oracle$truffle$nfi$spi$types$NativeSimpleType:()[I
aload 0
getfield com.oracle.truffle.nfi.test.NumericNFITest.type:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
iaload
tableswitch { // 2 - 6
2: 1
3: 4
4: 2
5: 4
6: 3
default: 4
}
1: StackMap locals:
StackMap stack:
lload 1
ldc 255
land
lreturn
2: StackMap locals:
StackMap stack:
lload 1
ldc 65535
land
lreturn
3: StackMap locals:
StackMap stack:
lload 1
ldc 4294967295
land
lreturn
4: StackMap locals:
StackMap stack:
lload 1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 5 1 nr J
MethodParameters:
Name Flags
nr
public void testIncrementNeg(com.oracle.truffle.api.CallTarget);
descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
ldc -5
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.fixSign:(J)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: ldc "return"
aload 2
aload 0
aload 0
ldc -4
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.fixSign:(J)J
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 3 1 callTarget Lcom/oracle/truffle/api/CallTarget;
1 3 2 ret Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
RuntimeVisibleParameterAnnotations:
0:
com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestIncrementNode;)
MethodParameters:
Name Flags
callTarget
public void testBoxed(com.oracle.truffle.api.CallTarget);
descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_1
anewarray java.lang.Object
dup
iconst_0
new com.oracle.truffle.nfi.test.interop.BoxedPrimitive
dup
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial com.oracle.truffle.nfi.test.interop.BoxedPrimitive.<init>:(Ljava/lang/Object;)V
aastore
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: ldc "return"
aload 2
aload 0
ldc 43
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 3 1 callTarget Lcom/oracle/truffle/api/CallTarget;
1 3 2 ret Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
RuntimeVisibleParameterAnnotations:
0:
com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestIncrementNode;)
MethodParameters:
Name Flags
callTarget
public void testCallback(com.oracle.truffle.api.CallTarget);
descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.nfi.test.NumericNFITest.callback:Ljava/lang/Object;
aastore
dup
iconst_1
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: ldc "return"
aload 2
aload 0
ldc 96
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 3 1 callTarget Lcom/oracle/truffle/api/CallTarget;
1 3 2 ret Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
RuntimeVisibleParameterAnnotations:
0:
com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestCallbackNode;)
MethodParameters:
Name Flags
callTarget
public void testCallbackNeg(com.oracle.truffle.api.CallTarget);
descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.nfi.test.NumericNFITest.negCallback:Ljava/lang/Object;
aastore
dup
iconst_1
aload 0
ldc -42
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.fixSign:(J)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: ldc "return"
aload 2
aload 0
aload 0
ldc -72
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.fixSign:(J)J
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 3 1 callTarget Lcom/oracle/truffle/api/CallTarget;
1 3 2 ret Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
RuntimeVisibleParameterAnnotations:
0:
com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestCallbackNode;)
MethodParameters:
Name Flags
callTarget
public void testCallbackRet(com.oracle.truffle.api.CallTarget);
descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: ldc "return"
aload 2
aload 0
ldc 43
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 3 1 callTarget Lcom/oracle/truffle/api/CallTarget;
1 3 2 ret Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
RuntimeVisibleParameterAnnotations:
0:
com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestCallbackRetNode;)
MethodParameters:
Name Flags
callTarget
private java.lang.String getPingPongSignature();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=1
start local 0 0: ldc "(%s):%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.nfi.test.NumericNFITest.type:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
iconst_1
aload 0
getfield com.oracle.truffle.nfi.test.NumericNFITest.type:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 1
start local 1 1: ldc "(env, %s):%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 2
start local 2 2: ldc "(env, %s, %s) : %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 0
getfield com.oracle.truffle.nfi.test.NumericNFITest.type:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
dup
iconst_2
aload 0
getfield com.oracle.truffle.nfi.test.NumericNFITest.type:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
1 3 1 fnPointer Ljava/lang/String;
2 3 2 wrapPointer Ljava/lang/String;
public void testPingPong(com.oracle.truffle.api.CallTarget);
descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.nfi.test.NumericNFITest.wrap:Ljava/lang/Object;
aastore
dup
iconst_1
iconst_5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: ldc "return"
aload 2
aload 0
ldc 38
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 3 1 callTarget Lcom/oracle/truffle/api/CallTarget;
1 3 2 ret Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
RuntimeVisibleParameterAnnotations:
0:
com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/nfi/test/NumericNFITest$TestPingPongNode;)
MethodParameters:
Name Flags
callTarget
static int[] $SWITCH_TABLE$com$oracle$truffle$nfi$spi$types$NativeSimpleType();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.oracle.truffle.nfi.test.NumericNFITest.$SWITCH_TABLE$com$oracle$truffle$nfi$spi$types$NativeSimpleType:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.values:()[Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.DOUBLE:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
bipush 11
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.FLOAT:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
bipush 10
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.NULLABLE:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
bipush 15
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.OBJECT:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
bipush 14
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.POINTER:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
bipush 12
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT16:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
iconst_5
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT32:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
bipush 7
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT64:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
bipush 9
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.SINT8:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
iconst_3
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.STRING:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
bipush 13
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT16:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
iconst_4
iastore
33: goto 35
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
34: pop
StackMap locals:
StackMap stack:
35: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT32:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
bipush 6
iastore
36: goto 38
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
37: pop
StackMap locals:
StackMap stack:
38: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT64:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
bipush 8
iastore
39: goto 41
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
40: pop
StackMap locals:
StackMap stack:
41: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.UINT8:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
iconst_2
iastore
42: goto 44
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
43: pop
StackMap locals:
StackMap stack:
44: aload 0
getstatic com.oracle.truffle.nfi.spi.types.NativeSimpleType.VOID:Lcom/oracle/truffle/nfi/spi/types/NativeSimpleType;
invokevirtual com.oracle.truffle.nfi.spi.types.NativeSimpleType.ordinal:()I
iconst_1
iastore
45: goto 47
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
46: pop
StackMap locals:
StackMap stack:
47: aload 0
dup
putstatic com.oracle.truffle.nfi.test.NumericNFITest.$SWITCH_TABLE$com$oracle$truffle$nfi$spi$types$NativeSimpleType:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
32 33 34 Class java.lang.NoSuchFieldError
35 36 37 Class java.lang.NoSuchFieldError
38 39 40 Class java.lang.NoSuchFieldError
41 42 43 Class java.lang.NoSuchFieldError
44 45 46 Class java.lang.NoSuchFieldError
private java.lang.Object lambda$0(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: ldc "argument"
aload 1
iconst_0
aaload
aload 0
ldc 43
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
1: aload 1
iconst_0
aaload
invokestatic com.oracle.truffle.nfi.test.NumericNFITest.unboxNumber:(Ljava/lang/Object;)J
ldc 5
ladd
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 2 1 args [Ljava/lang/Object;
private java.lang.Object lambda$1(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: ldc "argument"
aload 1
iconst_0
aaload
aload 0
aload 0
ldc -41
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.fixSign:(J)J
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
1: aload 1
iconst_0
aaload
invokestatic com.oracle.truffle.nfi.test.NumericNFITest.unboxNumber:(Ljava/lang/Object;)J
ldc 5
ladd
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 2 1 args [Ljava/lang/Object;
private java.lang.Object lambda$2(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
aaload
astore 2
start local 2 1: new com.oracle.truffle.nfi.test.interop.TestCallback
dup
iconst_1
aload 0
aload 2
invokedynamic call(Lcom/oracle/truffle/nfi/test/NumericNFITest;Ljava/lang/Object;)Lcom/oracle/truffle/nfi/test/interop/TestCallback$Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
([Ljava/lang/Object;)Ljava/lang/Object;
com/oracle/truffle/nfi/test/NumericNFITest.lambda$3(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (7)
([Ljava/lang/Object;)Ljava/lang/Object;
invokespecial com.oracle.truffle.nfi.test.interop.TestCallback.<init>:(ILcom/oracle/truffle/nfi/test/interop/TestCallback$Function;)V
astore 3
start local 3 2: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 3 1 args [Ljava/lang/Object;
1 3 2 fn Ljava/lang/Object;
2 3 3 wrapped Ljava/lang/Object;
private java.lang.Object lambda$3(java.lang.Object, java.lang.Object[]);
descriptor: (Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=9, locals=4, args_size=3
start local 0 start local 2 0: ldc "argument"
aload 2
iconst_0
aaload
aload 0
ldc 6
invokevirtual com.oracle.truffle.nfi.test.NumericNFITest.number:(J)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.core.Is.is:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
1: getstatic com.oracle.truffle.nfi.test.NumericNFITest.UNCACHED_INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
iconst_0
aaload
invokestatic com.oracle.truffle.nfi.test.NumericNFITest.unboxNumber:(Ljava/lang/Object;)J
ldc 3
lmul
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
2: areturn
3: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.InteropException
astore 3
start local 3 4: new java.lang.AssertionError
dup
aload 3
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/nfi/test/NumericNFITest;
0 5 2 innerArgs [Ljava/lang/Object;
4 5 3 ex Lcom/oracle/truffle/api/interop/InteropException;
Exception table:
from to target type
1 2 3 Class com.oracle.truffle.api.interop.InteropException
}
SourceFile: "NumericNFITest.java"
NestMembers:
com.oracle.truffle.nfi.test.NumericNFITest$NumberMatcher com.oracle.truffle.nfi.test.NumericNFITest$TestCallbackNode com.oracle.truffle.nfi.test.NumericNFITest$TestCallbackRetNode com.oracle.truffle.nfi.test.NumericNFITest$TestIncrementNode com.oracle.truffle.nfi.test.NumericNFITest$TestPingPongNode
InnerClasses:
final NumberMatcher = com.oracle.truffle.nfi.test.NumericNFITest$NumberMatcher of com.oracle.truffle.nfi.test.NumericNFITest
public TestCallbackNode = com.oracle.truffle.nfi.test.NumericNFITest$TestCallbackNode of com.oracle.truffle.nfi.test.NumericNFITest
public TestCallbackRetNode = com.oracle.truffle.nfi.test.NumericNFITest$TestCallbackRetNode of com.oracle.truffle.nfi.test.NumericNFITest
public TestIncrementNode = com.oracle.truffle.nfi.test.NumericNFITest$TestIncrementNode of com.oracle.truffle.nfi.test.NumericNFITest
public TestPingPongNode = com.oracle.truffle.nfi.test.NumericNFITest$TestPingPongNode of com.oracle.truffle.nfi.test.NumericNFITest
public abstract Function = com.oracle.truffle.nfi.test.interop.TestCallback$Function of com.oracle.truffle.nfi.test.interop.TestCallback
public abstract Inject = com.oracle.truffle.tck.TruffleRunner$Inject of com.oracle.truffle.tck.TruffleRunner
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Parameter = org.junit.runners.Parameterized$Parameter of org.junit.runners.Parameterized
public abstract Parameters = org.junit.runners.Parameterized$Parameters of org.junit.runners.Parameterized
public abstract UseParametersRunnerFactory = org.junit.runners.Parameterized$UseParametersRunnerFactory of org.junit.runners.Parameterized
RuntimeVisibleAnnotations:
org.junit.runner.RunWith(value = Lorg/junit/runners/Parameterized;)
org.junit.runners.Parameterized$UseParametersRunnerFactory(value = Lcom/oracle/truffle/tck/TruffleRunner$ParametersFactory;)