public abstract class com.oracle.truffle.llvm.runtime.PlatformCapability<S extends java.lang.Enum<S> extends com.oracle.truffle.llvm.runtime.LLVMSyscallEntry> implements com.oracle.truffle.llvm.runtime.config.LLVMCapability
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.llvm.runtime.PlatformCapability
super_class: java.lang.Object
{
private final S[] valueToSysCall;
descriptor: [Ljava/lang/Enum;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [TS;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)
public abstract java.nio.file.Path getSulongLibrariesPath();
descriptor: ()Ljava/nio/file/Path;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract java.lang.String[] getSulongDefaultLibraries();
descriptor: ()[Ljava/lang/String;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract com.oracle.truffle.llvm.runtime.memory.LLVMSyscallOperationNode createSyscallNode(long);
descriptor: (J)Lcom/oracle/truffle/llvm/runtime/memory/LLVMSyscallOperationNode;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
index
public abstract java.lang.String getBuiltinsLibrary();
descriptor: ()Ljava/lang/String;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract java.lang.String getLibrarySuffix();
descriptor: ()Ljava/lang/String;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
protected void <init>(java.lang.Class<S>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.llvm.runtime.PlatformCapability.initTable:(Ljava/lang/Class;)[Ljava/lang/Enum;
putfield com.oracle.truffle.llvm.runtime.PlatformCapability.valueToSysCall:[Ljava/lang/Enum;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/llvm/runtime/PlatformCapability<TS;>;
0 3 1 cls Ljava/lang/Class<TS;>;
Signature: (Ljava/lang/Class<TS;>;)V
MethodParameters:
Name Flags
cls
private S[] initTable(java.lang.Class<S>);
descriptor: (Ljava/lang/Class;)[Ljava/lang/Enum;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.getEnumConstants:()[Ljava/lang/Object;
checkcast java.lang.Enum[]
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aload 1
iconst_0
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
checkcast java.lang.Enum[]
areturn
3: StackMap locals: java.lang.Enum[]
StackMap stack:
iconst_m1
istore 3
start local 3 4: aload 2
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 8
StackMap locals: com.oracle.truffle.llvm.runtime.PlatformCapability java.lang.Class java.lang.Enum[] int top int int java.lang.Enum[]
StackMap stack:
5: aload 7
iload 5
aaload
astore 4
start local 4 6: iload 3
aload 4
checkcast com.oracle.truffle.llvm.runtime.LLVMSyscallEntry
invokeinterface com.oracle.truffle.llvm.runtime.LLVMSyscallEntry.value:()I
invokestatic java.lang.Math.max:(II)I
istore 3
end local 4 7: iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
iload 6
if_icmplt 5
9: aload 1
iload 3
iconst_1
iadd
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
checkcast java.lang.Enum[]
astore 4
start local 4 10: aload 2
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 14
StackMap locals: com.oracle.truffle.llvm.runtime.PlatformCapability java.lang.Class java.lang.Enum[] int java.lang.Enum[] top int int java.lang.Enum[]
StackMap stack:
11: aload 8
iload 6
aaload
astore 5
start local 5 12: aload 4
aload 5
checkcast com.oracle.truffle.llvm.runtime.LLVMSyscallEntry
invokeinterface com.oracle.truffle.llvm.runtime.LLVMSyscallEntry.value:()I
aload 5
aastore
end local 5 13: iinc 6 1
StackMap locals:
StackMap stack:
14: iload 6
iload 7
if_icmplt 11
15: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/llvm/runtime/PlatformCapability<TS;>;
0 16 1 cls Ljava/lang/Class<TS;>;
1 16 2 constants [Ljava/lang/Enum;
4 16 3 max I
6 7 4 syscall TS;
10 16 4 syscalls [Ljava/lang/Enum;
12 13 5 syscall TS;
Signature: (Ljava/lang/Class<TS;>;)[TS;
MethodParameters:
Name Flags
cls
protected S getSyscall();
descriptor: (J)Ljava/lang/Enum;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
iflt 4
lload 1
aload 0
getfield com.oracle.truffle.llvm.runtime.PlatformCapability.valueToSysCall:[Ljava/lang/Enum;
arraylength
i2l
lcmp
ifge 4
1: aload 0
getfield com.oracle.truffle.llvm.runtime.PlatformCapability.valueToSysCall:[Ljava/lang/Enum;
lload 1
l2i
aaload
astore 3
start local 3 2: aload 3
ifnull 4
3: aload 3
areturn
end local 3 4: StackMap locals:
StackMap stack:
lload 1
invokestatic com.oracle.truffle.llvm.runtime.PlatformCapability.error:(J)Ljava/lang/IllegalArgumentException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/llvm/runtime/PlatformCapability<TS;>;
0 5 1 value J
2 4 3 syscall TS;
Signature: (J)TS;
MethodParameters:
Name Flags
value
private static java.lang.IllegalArgumentException error(long);
descriptor: (J)Ljava/lang/IllegalArgumentException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unknown syscall number: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 0
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 value J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
value
public java.util.List<java.lang.String> preprocessDependencies(com.oracle.truffle.llvm.runtime.LLVMContext, com.oracle.truffle.api.TruffleFile, java.util.List<java.lang.String>);
descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMContext;Lcom/oracle/truffle/api/TruffleFile;Ljava/util/List;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/llvm/runtime/PlatformCapability<TS;>;
0 1 1 context Lcom/oracle/truffle/llvm/runtime/LLVMContext;
0 1 2 file Lcom/oracle/truffle/api/TruffleFile;
0 1 3 dependencies Ljava/util/List<Ljava/lang/String;>;
Signature: (Lcom/oracle/truffle/llvm/runtime/LLVMContext;Lcom/oracle/truffle/api/TruffleFile;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
context
file
dependencies
public abstract java.lang.Object createVAListStorage(com.oracle.truffle.api.nodes.RootNode);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)Ljava/lang/Object;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
rootNode
public abstract com.oracle.truffle.llvm.runtime.types.Type getVAListType();
descriptor: ()Lcom/oracle/truffle/llvm/runtime/types/Type;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract java.lang.Object createNativeVAListWrapper(com.oracle.truffle.llvm.runtime.pointer.LLVMNativePointer, com.oracle.truffle.api.nodes.RootNode);
descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMNativePointer;Lcom/oracle/truffle/api/nodes/RootNode;)Ljava/lang/Object;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
vaListPtr
rootNode
}
Signature: <S:Ljava/lang/Enum<TS;>;:Lcom/oracle/truffle/llvm/runtime/LLVMSyscallEntry;>Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/config/LLVMCapability;
SourceFile: "PlatformCapability.java"
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives