public class com.oracle.svm.tutorial.CInterfaceTutorial
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.tutorial.CInterfaceTutorial
super_class: java.lang.Object
{
protected static final org.graalvm.nativeimage.c.function.CEntryPointLiteral<com.oracle.svm.tutorial.CInterfaceTutorial$PrintFunctionPointer> javaPrintFunction;
descriptor: Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral<Lcom/oracle/svm/tutorial/CInterfaceTutorial$PrintFunctionPointer;>;
protected static org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder pin;
descriptor: Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: ldc Lcom/oracle/svm/tutorial/CInterfaceTutorial;
ldc "printingInJava"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Lorg/graalvm/nativeimage/IsolateThread;
aastore
dup
iconst_1
ldc Lorg/graalvm/nativeimage/c/type/CCharPointer;
aastore
invokestatic org.graalvm.nativeimage.c.function.CEntryPointLiteral.create:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
putstatic com.oracle.svm.tutorial.CInterfaceTutorial.javaPrintFunction:Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
1: 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/tutorial/CInterfaceTutorial;
protected static native int getDataLength();
descriptor: ()I
flags: (0x010c) ACC_PROTECTED, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.constant.CConstant(value = "DATA_ARRAY_LENGTH")
protected static native org.graalvm.word.PointerBase memcpy(org.graalvm.word.PointerBase, org.graalvm.word.PointerBase, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/PointerBase;Lorg/graalvm/word/PointerBase;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/PointerBase;
flags: (0x010c) ACC_PROTECTED, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CFunction()
MethodParameters:
Name Flags
dest
src
n
protected static native void printingInC(org.graalvm.nativeimage.IsolateThread, org.graalvm.nativeimage.c.type.CCharPointer);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lorg/graalvm/nativeimage/c/type/CCharPointer;)V
flags: (0x010c) ACC_PROTECTED, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CFunction(value = "c_print")
MethodParameters:
Name Flags
thread
cstr
protected static void printingInJava(org.graalvm.nativeimage.IsolateThread, org.graalvm.nativeimage.c.type.CCharPointer);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lorg/graalvm/nativeimage/c/type/CCharPointer;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "J: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toJavaString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 thread Lorg/graalvm/nativeimage/IsolateThread;
0 2 1 cstr Lorg/graalvm/nativeimage/c/type/CCharPointer;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CEntryPoint()
MethodParameters:
Name Flags
thread
cstr
protected static void dump(com.oracle.svm.tutorial.CInterfaceTutorial$MyData);
descriptor: (Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=7, locals=2, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "**** In Java ****\n"
iconst_0
anewarray java.lang.Object
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "primitive: %d\n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.getPrimitive:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "length: %d\n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.getDataLength:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
3: iconst_0
istore 1
start local 1 4: goto 7
5: StackMap locals: int
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "%d "
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.addressOfArray:()Lorg/graalvm/nativeimage/c/type/CIntPointer;
iload 1
invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.read:(I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
6: iinc 1 1
StackMap locals:
StackMap stack:
7: iload 1
invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.getDataLength:()I
if_icmplt 5
end local 1 8: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\n"
iconst_0
anewarray java.lang.Object
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
9: invokestatic org.graalvm.nativeimage.CurrentIsolate.getCurrentThread:()Lorg/graalvm/nativeimage/IsolateThread;
astore 1
start local 1 10: invokestatic com.oracle.svm.core.OS.getCurrent:()Lcom/oracle/svm/core/OS;
getstatic com.oracle.svm.core.OS.WINDOWS:Lcom/oracle/svm/core/OS;
if_acmpeq 12
11: aload 1
aload 0
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.getCString:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.printingInC:(Lorg/graalvm/nativeimage/IsolateThread;Lorg/graalvm/nativeimage/c/type/CCharPointer;)V
12: StackMap locals: com.oracle.svm.tutorial.CInterfaceTutorial$MyData org.graalvm.nativeimage.IsolateThread
StackMap stack:
aload 0
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.getPrintFunction:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$PrintFunctionPointer;
aload 1
aload 0
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.getCString:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$PrintFunctionPointer.invoke:(Lorg/graalvm/nativeimage/IsolateThread;Lorg/graalvm/nativeimage/c/type/CCharPointer;)V
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 data Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;
4 8 1 i I
10 14 1 currentThread Lorg/graalvm/nativeimage/IsolateThread;
MethodParameters:
Name Flags
data
protected static void javaEntryPoint(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$MyData);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: ldc Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.tutorial.CInterfaceTutorial$MyData
astore 2
start local 2 1: ldc Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;
invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
istore 3
start local 3 2: aload 2
aload 1
iload 3
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.memcpy:(Lorg/graalvm/word/PointerBase;Lorg/graalvm/word/PointerBase;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/PointerBase;
pop
3: aload 2
invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.dump:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;)V
4: aload 1
bipush 99
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.setPrimitive:(I)V
5: aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.addressOfArray:()Lorg/graalvm/nativeimage/c/type/CIntPointer;
iconst_1
bipush 101
invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.write:(II)V
6: new java.lang.StringBuilder
dup
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.getCString:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toJavaString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " at "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 7: aload 4
invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toCString:(Ljava/lang/CharSequence;)Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
putstatic com.oracle.svm.tutorial.CInterfaceTutorial.pin:Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
8: getstatic com.oracle.svm.tutorial.CInterfaceTutorial.pin:Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.get:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
astore 5
start local 5 9: aload 1
aload 5
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.setCString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)V
10: aload 1
getstatic com.oracle.svm.tutorial.CInterfaceTutorial.javaPrintFunction:Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
invokevirtual org.graalvm.nativeimage.c.function.CEntryPointLiteral.getFunctionPointer:()Lorg/graalvm/nativeimage/c/function/CFunctionPointer;
checkcast com.oracle.svm.tutorial.CInterfaceTutorial$PrintFunctionPointer
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.setPrintFunction:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$PrintFunctionPointer;)V
11: aload 1
invokestatic org.graalvm.nativeimage.ObjectHandles.getGlobal:()Lorg/graalvm/nativeimage/ObjectHandles;
aload 4
invokeinterface org.graalvm.nativeimage.ObjectHandles.create:(Ljava/lang/Object;)Lorg/graalvm/nativeimage/ObjectHandle;
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.setJavaObject:(Lorg/graalvm/nativeimage/ObjectHandle;)V
12: return
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 13 0 thread Lorg/graalvm/nativeimage/IsolateThread;
0 13 1 data Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;
1 13 2 copy Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;
2 13 3 dataSize I
7 13 4 javaString Ljava/lang/String;
9 13 5 cString Lorg/graalvm/nativeimage/c/type/CCharPointer;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CEntryPoint(name = "java_entry_point")
MethodParameters:
Name Flags
thread
data
protected static void releaseData(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$MyData);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.dump:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;)V
1: aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.getJavaObject:()Lorg/graalvm/nativeimage/ObjectHandle;
astore 2
start local 2 2: invokestatic org.graalvm.nativeimage.ObjectHandles.getGlobal:()Lorg/graalvm/nativeimage/ObjectHandles;
aload 2
invokeinterface org.graalvm.nativeimage.ObjectHandles.get:(Lorg/graalvm/nativeimage/ObjectHandle;)Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 3: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "javaObject: %s\n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
4: invokestatic org.graalvm.nativeimage.ObjectHandles.getGlobal:()Lorg/graalvm/nativeimage/ObjectHandles;
aload 2
invokeinterface org.graalvm.nativeimage.ObjectHandles.destroy:(Lorg/graalvm/nativeimage/ObjectHandle;)V
5: getstatic com.oracle.svm.tutorial.CInterfaceTutorial.pin:Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.close:()V
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 thread Lorg/graalvm/nativeimage/IsolateThread;
0 7 1 data Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;
2 7 2 handle Lorg/graalvm/nativeimage/ObjectHandle;
3 7 3 javaObject Ljava/lang/String;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CEntryPoint(name = "java_release_data")
MethodParameters:
Name Flags
thread
data
protected static native com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek dayOfTheWeekAdd(com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek, int);
descriptor: (Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;
flags: (0x010c) ACC_PROTECTED, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CFunction(value = "day_of_the_week_add")
MethodParameters:
Name Flags
day
offset
protected static void printDay(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Day: %s (Java ordinal: %d, C value: %d)%n"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek.name:()Ljava/lang/String;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek.ordinal:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 1
invokevirtual com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek.getCValue:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
1: invokestatic com.oracle.svm.core.OS.getCurrent:()Lcom/oracle/svm/core/OS;
getstatic com.oracle.svm.core.OS.WINDOWS:Lcom/oracle/svm/core/OS;
if_acmpeq 4
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " follows %s and %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
bipush -2
invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.dayOfTheWeekAdd:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;
aastore
dup
iconst_1
aload 1
iconst_m1
invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.dayOfTheWeekAdd:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;
aastore
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
3: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " is followed by %s and %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
iconst_1
invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.dayOfTheWeekAdd:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;
aastore
dup
iconst_1
aload 1
iconst_2
invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.dayOfTheWeekAdd:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;
aastore
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 thread Lorg/graalvm/nativeimage/IsolateThread;
0 5 1 day Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CEntryPoint(name = "java_print_day")
MethodParameters:
Name Flags
thread
day
protected static void javaEntryPoint2(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1, com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct2;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "*** In Java, demonstrating inheritance with @CStruct class"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.typePtr:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
astore 3
start local 3 2: aload 2
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2.header:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$Header;
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Header.typePtr:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
astore 4
start local 4 3: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "tp1 = 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokeinterface org.graalvm.nativeimage.c.type.CCharPointer.rawValue:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " tp2 = 0x"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokeinterface org.graalvm.nativeimage.c.type.CCharPointer.rawValue:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "&s1.header = 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.header:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$Header;
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Header.rawValue:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " &s2.header = 0x"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2.header:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$Header;
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Header.rawValue:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "s1.f1 = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.f1:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " s2.f2 = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2.f1:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
6: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "&s1.f1 = 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.addressOff1:()Lorg/graalvm/nativeimage/c/type/CIntPointer;
invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.rawValue:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "*&s1.f1 = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.addressOff1:()Lorg/graalvm/nativeimage/c/type/CIntPointer;
invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.read:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "offset_of(s1.f1) = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.offsetOff1:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
9: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "s1.header.type = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.type:()B
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " ((Header) s2).type = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2.header:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$Header;
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Header.type:()B
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "*** In Java, demonstrating @CFieldOffset"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
11: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "offset_of(s1.header) = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.offsetOfHeader:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
12: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "offset_of(s2.header) = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2.offsetOfHeader:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
13: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "offset_of(s2.f1) = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2.offsetOff1:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
14: aload 1
iconst_0
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.addressOf:(I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
astore 5
start local 5 15: aload 1
iconst_1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.addressOf:(I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
astore 6
start local 6 16: aload 6
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.rawValue:()J
aload 5
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.rawValue:()J
lsub
lstore 7
start local 7 17: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "sizeof(s1) ="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
18: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " s1 = 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.rawValue:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
19: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " ps1 = 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.rawValue:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
20: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " ps2 = 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.rawValue:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
21: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " ps2 - ps1 "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 7
ldc Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
i2l
lcmp
ifne 22
ldc "="
goto 23
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2 org.graalvm.nativeimage.c.type.CCharPointer org.graalvm.nativeimage.c.type.CCharPointer com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 long
StackMap stack: java.io.PrintStream java.lang.StringBuilder
22: ldc "!="
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2 org.graalvm.nativeimage.c.type.CCharPointer org.graalvm.nativeimage.c.type.CCharPointer com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 long
StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
23: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " sizeof(substruct1)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
24: return
end local 7 end local 6 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 thread Lorg/graalvm/nativeimage/IsolateThread;
0 25 1 s1 Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
0 25 2 s2 Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct2;
2 25 3 tp1 Lorg/graalvm/nativeimage/c/type/CCharPointer;
3 25 4 tp2 Lorg/graalvm/nativeimage/c/type/CCharPointer;
15 25 5 ps1 Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
16 25 6 ps2 Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
17 25 7 s J
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CEntryPoint(name = "java_entry_point2")
MethodParameters:
Name Flags
thread
s1
s2
protected static void javaEntryPoint3(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$DU, com.oracle.svm.tutorial.CInterfaceTutorial$DU, com.oracle.svm.tutorial.CInterfaceTutorial$D1, com.oracle.svm.tutorial.CInterfaceTutorial$D2);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$DU;Lcom/oracle/svm/tutorial/CInterfaceTutorial$DU;Lcom/oracle/svm/tutorial/CInterfaceTutorial$D1;Lcom/oracle/svm/tutorial/CInterfaceTutorial$D2;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "*** In Java, demonstrating access to union type member with @CStruct class"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$DU.getD1:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$D1;
aload 3
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D1.notEqual:(Lorg/graalvm/word/ComparableWord;)Z
ifeq 4
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "*** Error with Union test1: du1 should be equal to d1"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: goto 5
4: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Union test 1 passed (0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D1.rawValue:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$DU.getD2:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$D2;
aload 4
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.equal:(Lorg/graalvm/word/ComparableWord;)Z
ifne 8
6: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "*** Error with Union test2: du2 should be equal to d2"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: goto 9
8: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Union test 2 passed (0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.rawValue:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 4
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.getValuePointer:()Lorg/graalvm/nativeimage/c/type/CLongPointer;
aload 4
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.getLongPointer:()Lorg/graalvm/nativeimage/c/type/CLongPointer;
invokeinterface org.graalvm.nativeimage.c.type.CLongPointer.notEqual:(Lorg/graalvm/word/ComparableWord;)Z
ifeq 12
10: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "*** Error with Union test3: d2.long_pointer != &d2.long_value"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
11: goto 13
12: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Union test 3 passed (0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.getLongPointer:()Lorg/graalvm/nativeimage/c/type/CLongPointer;
invokeinterface org.graalvm.nativeimage.c.type.CLongPointer.rawValue:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
13: StackMap locals:
StackMap stack:
aload 4
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.getValuePointer:()Lorg/graalvm/nativeimage/c/type/CLongPointer;
invokeinterface org.graalvm.nativeimage.c.type.CLongPointer.read:()J
aload 4
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.getLongValue:()J
lcmp
ifeq 16
14: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "*** Error with Union test4: *d2.long_pointer != d2.long_value"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
15: goto 17
16: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Union test 4 passed ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.getLongValue:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
17: 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 18 0 thread Lorg/graalvm/nativeimage/IsolateThread;
0 18 1 du1 Lcom/oracle/svm/tutorial/CInterfaceTutorial$DU;
0 18 2 du2 Lcom/oracle/svm/tutorial/CInterfaceTutorial$DU;
0 18 3 d1 Lcom/oracle/svm/tutorial/CInterfaceTutorial$D1;
0 18 4 d2 Lcom/oracle/svm/tutorial/CInterfaceTutorial$D2;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CEntryPoint(name = "java_entry_point3")
MethodParameters:
Name Flags
thread
du1
du2
d1
d2
protected static long getUB1RawValue(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$SUData);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;)J
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1:()B
i2l
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 thread Lorg/graalvm/nativeimage/IsolateThread;
0 1 1 sudata Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CEntryPoint(name = "getUB1_raw_value")
MethodParameters:
Name Flags
thread
sudata
protected static long getUB1MaskedRawValue(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$SUData);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;)J
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1:()B
sipush 255
iand
i2l
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 thread Lorg/graalvm/nativeimage/IsolateThread;
0 1 1 sudata Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CEntryPoint(name = "getUB1_masked_raw_value")
MethodParameters:
Name Flags
thread
sudata
protected static long getUB1AsUnsignedRawValue(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$SUData);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;)J
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1Unsigned:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 thread Lorg/graalvm/nativeimage/IsolateThread;
0 1 1 sudata Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CEntryPoint(name = "getUB1_as_Unsigned_raw_value")
MethodParameters:
Name Flags
thread
sudata
protected static void javaEntryPoint4(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$SUData);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1Unsigned:()Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 2: aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getSB1Signed:()Lorg/graalvm/word/SignedWord;
astore 4
start local 4 3: aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1:()B
istore 2
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " getUB1() = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
iload 2
ifge 5
ldc "<"
goto 6
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
StackMap stack: java.io.PrintStream java.lang.StringBuilder
5: ldc ">="
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
6: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " 0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " getUB1Unsigned() = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
aload 3
invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
lconst_0
lcmp
ifge 8
ldc "<"
goto 9
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
StackMap stack: java.io.PrintStream java.lang.StringBuilder
8: ldc ">="
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
9: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " 0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getSB1:()B
istore 2
11: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " getSB1() = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
iload 2
ifge 12
ldc "<"
goto 13
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
StackMap stack: java.io.PrintStream java.lang.StringBuilder
12: ldc ">="
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
13: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " 0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
14: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " getSB1Signed() = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokeinterface org.graalvm.word.SignedWord.rawValue:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
aload 4
invokeinterface org.graalvm.word.SignedWord.rawValue:()J
lconst_0
lcmp
ifge 15
ldc "<"
goto 16
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
StackMap stack: java.io.PrintStream java.lang.StringBuilder
15: ldc ">="
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
16: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " 0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
17: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "(byte) 245 = -11"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
18: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "(byte) 245 & 0xFF = 245"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
19: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "sudata.getUB1Unsigned().aboveOrEqual(220) = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1Unsigned:()Lorg/graalvm/word/UnsignedWord;
sipush 220
invokeinterface org.graalvm.word.UnsignedWord.aboveOrEqual:(I)Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
20: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "sudata.getUB1Unsigned().aboveOrEqual(245) = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1Unsigned:()Lorg/graalvm/word/UnsignedWord;
sipush 245
invokeinterface org.graalvm.word.UnsignedWord.aboveOrEqual:(I)Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
21: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "sudata.getUB1Unsigned().aboveOrEqual((byte)220) = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1Unsigned:()Lorg/graalvm/word/UnsignedWord;
bipush -36
invokeinterface org.graalvm.word.UnsignedWord.aboveOrEqual:(I)Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
22: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "sudata.getUB1Unsigned().aboveOrEqual((byte)245) = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1Unsigned:()Lorg/graalvm/word/UnsignedWord;
bipush -11
invokeinterface org.graalvm.word.UnsignedWord.aboveOrEqual:(I)Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
23: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "sudata.getUB1() && 0xFF > 220 = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1:()B
sipush 255
iand
sipush 220
if_icmple 24
iconst_1
goto 25
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
StackMap stack: java.io.PrintStream java.lang.StringBuilder
24: iconst_0
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
StackMap stack: java.io.PrintStream java.lang.StringBuilder int
25: invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
26: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "sudata.getUB1() && 0xFF > 245 = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1:()B
sipush 255
iand
sipush 245
if_icmple 27
iconst_1
goto 28
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
StackMap stack: java.io.PrintStream java.lang.StringBuilder
27: iconst_0
StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
StackMap stack: java.io.PrintStream java.lang.StringBuilder int
28: invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
29: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 thread Lorg/graalvm/nativeimage/IsolateThread;
0 30 1 sudata Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;
1 30 2 i I
2 30 3 u Lorg/graalvm/word/UnsignedWord;
3 30 4 s Lorg/graalvm/word/SignedWord;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.function.CEntryPoint(name = "java_entry_point4")
MethodParameters:
Name Flags
thread
sudata
}
SourceFile: "CInterfaceTutorial.java"
NestMembers:
com.oracle.svm.tutorial.CInterfaceTutorial$CInterfaceTutorialDirectives com.oracle.svm.tutorial.CInterfaceTutorial$D1 com.oracle.svm.tutorial.CInterfaceTutorial$D2 com.oracle.svm.tutorial.CInterfaceTutorial$DU com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek com.oracle.svm.tutorial.CInterfaceTutorial$Header com.oracle.svm.tutorial.CInterfaceTutorial$MyData com.oracle.svm.tutorial.CInterfaceTutorial$PrintFunctionPointer com.oracle.svm.tutorial.CInterfaceTutorial$SUData com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2
InnerClasses:
CInterfaceTutorialDirectives = com.oracle.svm.tutorial.CInterfaceTutorial$CInterfaceTutorialDirectives of com.oracle.svm.tutorial.CInterfaceTutorial
abstract D1 = com.oracle.svm.tutorial.CInterfaceTutorial$D1 of com.oracle.svm.tutorial.CInterfaceTutorial
abstract D2 = com.oracle.svm.tutorial.CInterfaceTutorial$D2 of com.oracle.svm.tutorial.CInterfaceTutorial
abstract DU = com.oracle.svm.tutorial.CInterfaceTutorial$DU of com.oracle.svm.tutorial.CInterfaceTutorial
final DayOfTheWeek = com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek of com.oracle.svm.tutorial.CInterfaceTutorial
abstract Header = com.oracle.svm.tutorial.CInterfaceTutorial$Header of com.oracle.svm.tutorial.CInterfaceTutorial
abstract MyData = com.oracle.svm.tutorial.CInterfaceTutorial$MyData of com.oracle.svm.tutorial.CInterfaceTutorial
abstract PrintFunctionPointer = com.oracle.svm.tutorial.CInterfaceTutorial$PrintFunctionPointer of com.oracle.svm.tutorial.CInterfaceTutorial
abstract SUData = com.oracle.svm.tutorial.CInterfaceTutorial$SUData of com.oracle.svm.tutorial.CInterfaceTutorial
abstract Substruct1 = com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 of com.oracle.svm.tutorial.CInterfaceTutorial
abstract Substruct2 = com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2 of com.oracle.svm.tutorial.CInterfaceTutorial
public abstract CCharPointerHolder = org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder of org.graalvm.nativeimage.c.type.CTypeConversion
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.c.CContext(value = Lcom/oracle/svm/tutorial/CInterfaceTutorial$CInterfaceTutorialDirectives;)