public final class com.oracle.svm.jni.JNIGeneratedMethodSupport
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.jni.JNIGeneratedMethodSupport
super_class: java.lang.Object
{
private static final sun.misc.Unsafe UNSAFE;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic org.graalvm.compiler.serviceprovider.GraalUnsafeAccess.getUnsafe:()Lsun/misc/Unsafe;
putstatic com.oracle.svm.jni.JNIGeneratedMethodSupport.UNSAFE:Lsun/misc/Unsafe;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
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/svm/jni/JNIGeneratedMethodSupport;
static org.graalvm.word.PointerBase nativeCallAddress(com.oracle.svm.jni.access.JNINativeLinkage);
descriptor: (Lcom/oracle/svm/jni/access/JNINativeLinkage;)Lorg/graalvm/word/PointerBase;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.jni.access.JNINativeLinkage.getOrFindEntryPoint:()Lorg/graalvm/word/PointerBase;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 linkage Lcom/oracle/svm/jni/access/JNINativeLinkage;
MethodParameters:
Name Flags
linkage
static int nativeCallPrologue();
descriptor: ()I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: bipush 16
invokestatic com.oracle.svm.jni.JNIObjectHandles.pushLocalFrame:(I)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
static void nativeCallEpilogue(int);
descriptor: (I)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
invokestatic com.oracle.svm.jni.JNIObjectHandles.popLocalFramesIncluding:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 handleFrame I
MethodParameters:
Name Flags
handleFrame
static com.oracle.svm.jni.nativeapi.JNIEnvironment environment();
descriptor: ()Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.svm.jni.JNIThreadLocalEnvironment.getAddress:()Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
areturn
LocalVariableTable:
Start End Slot Name Signature
static com.oracle.svm.jni.nativeapi.JNIObjectHandle boxObjectInLocalHandle(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.jni.JNIObjectHandles.createLocal:(Ljava/lang/Object;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
static java.lang.Object unboxHandle(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.jni.JNIObjectHandles.getObject:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 handle Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
MethodParameters:
Name Flags
handle
static org.graalvm.word.WordBase getFieldOffsetFromId(com.oracle.svm.jni.nativeapi.JNIFieldId);
descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIFieldId;)Lorg/graalvm/word/WordBase;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.jni.access.JNIAccessibleField.getOffsetFromId:(Lcom/oracle/svm/jni/nativeapi/JNIFieldId;)Lorg/graalvm/word/WordBase;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 fieldId Lcom/oracle/svm/jni/nativeapi/JNIFieldId;
MethodParameters:
Name Flags
fieldId
static byte[] getStaticPrimitiveFieldsArray();
descriptor: ()[B
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.svm.core.StaticFieldsSupport.getStaticPrimitiveFields:()[B
areturn
LocalVariableTable:
Start End Slot Name Signature
static java.lang.Object[] getStaticObjectFieldsArray();
descriptor: ()[Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.svm.core.StaticFieldsSupport.getStaticObjectFields:()[Ljava/lang/Object;
areturn
LocalVariableTable:
Start End Slot Name Signature
static void setPendingException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.jni.JNIThreadLocalPendingException.set:(Ljava/lang/Throwable;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
static java.lang.Throwable getAndClearPendingException();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=0
0: invokestatic com.oracle.svm.jni.JNIThreadLocalPendingException.get:()Ljava/lang/Throwable;
astore 0
start local 0 1: invokestatic com.oracle.svm.jni.JNIThreadLocalPendingException.clear:()V
2: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 t Ljava/lang/Throwable;
static void rethrowPendingException();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=0
0: invokestatic com.oracle.svm.jni.JNIGeneratedMethodSupport.getAndClearPendingException:()Ljava/lang/Throwable;
astore 0
start local 0 1: aload 0
ifnull 3
2: aload 0
athrow
3: StackMap locals: java.lang.Throwable
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 t Ljava/lang/Throwable;
Exceptions:
throws java.lang.Throwable
static org.graalvm.word.PointerBase pinArrayAndGetAddress(java.lang.Object, org.graalvm.nativeimage.c.type.CCharPointer);
descriptor: (Ljava/lang/Object;Lorg/graalvm/nativeimage/c/type/CCharPointer;)Lorg/graalvm/word/PointerBase;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifeq 4
1: aload 1
invokeinterface org.graalvm.nativeimage.c.type.CCharPointer.isNonNull:()Z
ifeq 3
2: aload 1
iconst_0
invokeinterface org.graalvm.nativeimage.c.type.CCharPointer.write:(B)V
3: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.svm.jni.JNIThreadLocalPinnedObjects.pinArrayAndGetAddress:(Ljava/lang/Object;)Lorg/graalvm/word/PointerBase;
areturn
4: StackMap locals:
StackMap stack:
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 array Ljava/lang/Object;
0 5 1 isCopy Lorg/graalvm/nativeimage/c/type/CCharPointer;
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
array
isCopy
static boolean unpinArrayByAddress(org.graalvm.word.PointerBase);
descriptor: (Lorg/graalvm/word/PointerBase;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.jni.JNIThreadLocalPinnedObjects.unpinArrayByAddress:(Lorg/graalvm/word/PointerBase;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 address Lorg/graalvm/word/PointerBase;
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
address
static void getPrimitiveArrayRegion(jdk.vm.ci.meta.JavaKind, java.lang.Object, int, int, org.graalvm.word.PointerBase);
descriptor: (Ljdk/vm/ci/meta/JavaKind;Ljava/lang/Object;IILorg/graalvm/word/PointerBase;)V
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
iflt 1
iload 3
iflt 1
iload 2
iload 3
iadd
aload 1
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.ArrayIndexOutOfBoundsException
dup
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
iload 3
ifle 6
3: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
aload 0
iload 2
invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayElementOffset:(Ljdk/vm/ci/meta/JavaKind;I)J
lstore 5
start local 5 4: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
aload 0
invokevirtual com.oracle.svm.core.config.ObjectLayout.sizeInBytes:(Ljdk/vm/ci/meta/JavaKind;)I
istore 7
start local 7 5: getstatic com.oracle.svm.jni.JNIGeneratedMethodSupport.UNSAFE:Lsun/misc/Unsafe;
aload 1
lload 5
aconst_null
aload 4
invokeinterface org.graalvm.word.PointerBase.rawValue:()J
iload 3
iload 7
imul
i2l
invokevirtual sun.misc.Unsafe.copyMemory:(Ljava/lang/Object;JLjava/lang/Object;JJ)V
end local 7 end local 5 6: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 elementKind Ljdk/vm/ci/meta/JavaKind;
0 7 1 array Ljava/lang/Object;
0 7 2 start I
0 7 3 count I
0 7 4 buffer Lorg/graalvm/word/PointerBase;
4 6 5 offset J
5 6 7 elementSize I
MethodParameters:
Name Flags
elementKind
array
start
count
buffer
static void setPrimitiveArrayRegion(jdk.vm.ci.meta.JavaKind, java.lang.Object, int, int, org.graalvm.word.PointerBase);
descriptor: (Ljdk/vm/ci/meta/JavaKind;Ljava/lang/Object;IILorg/graalvm/word/PointerBase;)V
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
iflt 1
iload 3
iflt 1
iload 2
iload 3
iadd
aload 1
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.ArrayIndexOutOfBoundsException
dup
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
iload 3
ifle 6
3: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
aload 0
iload 2
invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayElementOffset:(Ljdk/vm/ci/meta/JavaKind;I)J
lstore 5
start local 5 4: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
aload 0
invokevirtual com.oracle.svm.core.config.ObjectLayout.sizeInBytes:(Ljdk/vm/ci/meta/JavaKind;)I
istore 7
start local 7 5: getstatic com.oracle.svm.jni.JNIGeneratedMethodSupport.UNSAFE:Lsun/misc/Unsafe;
aconst_null
aload 4
invokeinterface org.graalvm.word.PointerBase.rawValue:()J
aload 1
lload 5
iload 3
iload 7
imul
i2l
invokevirtual sun.misc.Unsafe.copyMemory:(Ljava/lang/Object;JLjava/lang/Object;JJ)V
end local 7 end local 5 6: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 elementKind Ljdk/vm/ci/meta/JavaKind;
0 7 1 array Ljava/lang/Object;
0 7 2 start I
0 7 3 count I
0 7 4 buffer Lorg/graalvm/word/PointerBase;
4 6 5 offset J
5 6 7 elementSize I
MethodParameters:
Name Flags
elementKind
array
start
count
buffer
}
SourceFile: "JNIGeneratedMethodSupport.java"