public class jdk.tools.jaotc.jnilibelf.JNIELFContainer
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.tools.jaotc.jnilibelf.JNIELFContainer
super_class: java.lang.Object
{
private java.lang.String outputFileName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.io.File outFile;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private int outFileDesc;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private jdk.tools.jaotc.jnilibelf.Pointer elfPtr;
descriptor: Ljdk/tools/jaotc/jnilibelf/Pointer;
flags: (0x0002) ACC_PRIVATE
private final int elfClass;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private jdk.tools.jaotc.jnilibelf.Pointer ehdrPtr;
descriptor: Ljdk/tools/jaotc/jnilibelf/Pointer;
flags: (0x0002) ACC_PRIVATE
private jdk.tools.jaotc.jnilibelf.Pointer phdrPtr;
descriptor: Ljdk/tools/jaotc/jnilibelf/Pointer;
flags: (0x0002) ACC_PRIVATE
private java.lang.String shStrTabContent;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.util.List<jdk.tools.jaotc.jnilibelf.ELFSymbol> localSymbolIndex;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljdk/tools/jaotc/jnilibelf/ELFSymbol;>;
private java.util.List<jdk.tools.jaotc.jnilibelf.ELFSymbol> globalSymbolIndex;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljdk/tools/jaotc/jnilibelf/ELFSymbol;>;
private java.lang.StringBuilder strTabContent;
descriptor: Ljava/lang/StringBuilder;
flags: (0x0002) ACC_PRIVATE
private int strTabNrOfBytes;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.util.Map<jdk.tools.jaotc.jnilibelf.ELFContainer, java.util.ArrayList<jdk.tools.jaotc.jnilibelf.Pointer>> relocTables;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljdk/tools/jaotc/jnilibelf/ELFContainer;Ljava/util/ArrayList<Ljdk/tools/jaotc/jnilibelf/Pointer;>;>;
private final int createReloca;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc ""
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.shStrTabContent:Ljava/lang/String;
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.localSymbolIndex:Ljava/util/List;
3: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.globalSymbolIndex:Ljava/util/List;
4: aload 0
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.strTabContent:Ljava/lang/StringBuilder;
5: aload 0
iconst_0
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.strTabNrOfBytes:I
6: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.relocTables:Ljava/util/Map;
7: invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elfshim_version:()Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
8: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "libelfshim version mismatch: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elfshim_version:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " vs "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: jdk.tools.jaotc.jnilibelf.JNIELFContainer java.lang.String java.lang.String
StackMap stack:
aload 0
invokestatic jdk.tools.jaotc.jnilibelf.JNIELFTargetInfo.getELFClass:()I
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
10: aload 0
invokestatic jdk.tools.jaotc.jnilibelf.JNIELFTargetInfo.createReloca:()I
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.createReloca:I
11: aload 0
aload 1
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.outputFileName:Ljava/lang/String;
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
0 13 1 fileName Ljava/lang/String;
0 13 2 aotVersion Ljava/lang/String;
MethodParameters:
Name Flags
fileName
aotVersion
public java.util.List<jdk.tools.jaotc.jnilibelf.ELFSymbol> getLocalSymbols();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.localSymbolIndex:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
Signature: ()Ljava/util/List<Ljdk/tools/jaotc/jnilibelf/ELFSymbol;>;
public java.util.List<jdk.tools.jaotc.jnilibelf.ELFSymbol> getGlobalSymbols();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.globalSymbolIndex:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
Signature: ()Ljava/util/List<Ljdk/tools/jaotc/jnilibelf/ELFSymbol;>;
public java.lang.String getStrTabContent();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.strTabContent:Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
public java.lang.String getShStrTabContent();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.shStrTabContent:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
public java.util.Map<jdk.tools.jaotc.jnilibelf.ELFContainer, java.util.ArrayList<jdk.tools.jaotc.jnilibelf.Pointer>> getRelocTables();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.relocTables:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
Signature: ()Ljava/util/Map<Ljdk/tools/jaotc/jnilibelf/ELFContainer;Ljava/util/ArrayList<Ljdk/tools/jaotc/jnilibelf/Pointer;>;>;
public int getFirstNonLocalSymbolIndex();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.localSymbolIndex:Ljava/util/List;
invokeinterface java.util.List.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
public void (int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elf_version:(I)I
ifne 2
1: new java.lang.InternalError
dup
ldc "ELF version mismatch"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.outputFileName:Ljava/lang/String;
invokestatic jdk.tools.jaotc.jnilibelf.JNIELFContainer.constructRelocFile:(Ljava/lang/String;)Ljava/io/File;
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.outFile:Ljava/io/File;
3: aload 0
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.outFile:Ljava/io/File;
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.open_rw:(Ljava/lang/String;)I
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.outFileDesc:I
4: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.outFileDesc:I
iconst_m1
if_icmpne 6
5: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Failed to open file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.outFile:Ljava/io/File;
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " to write relocatable object."
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
6: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.outFileDesc:I
getstatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF$Elf_Cmd.ELF_C_WRITE:Ljdk/tools/jaotc/jnilibelf/JNILibELFAPI$LibELF$Elf_Cmd;
invokevirtual jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF$Elf_Cmd.intValue:()I
new jdk.tools.jaotc.jnilibelf.Pointer
dup
lconst_0
invokespecial jdk.tools.jaotc.jnilibelf.Pointer.<init>:(J)V
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elf_begin:(IILjdk/tools/jaotc/jnilibelf/Pointer;)Ljdk/tools/jaotc/jnilibelf/Pointer;
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
7: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
ifnonnull 9
8: new java.lang.InternalError
dup
ldc "elf_begin failed"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.gelf_newehdr:(Ljdk/tools/jaotc/jnilibelf/Pointer;I)Ljdk/tools/jaotc/jnilibelf/Pointer;
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.ehdrPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
10: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.ehdrPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
invokestatic jdk.tools.jaotc.jnilibelf.JNIELFTargetInfo.getELFEndian:()I
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.ehdr_set_data_encoding:(Ljdk/tools/jaotc/jnilibelf/Pointer;I)V
11: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.ehdrPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
invokestatic jdk.tools.jaotc.jnilibelf.JNIELFTargetInfo.getELFArch:()I
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Ehdr_e_machine:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
12: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.ehdrPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
iload 1
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Ehdr_e_type:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
13: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.ehdrPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
iconst_1
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Ehdr_e_version:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
0 15 1 type I
MethodParameters:
Name Flags
type
private static java.io.File constructRelocFile(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: new java.io.File
dup
aload 0
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
invokevirtual java.io.File.exists:()Z
ifeq 4
2: aload 1
invokevirtual java.io.File.delete:()Z
ifne 4
3: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "Failed to delete existing "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " file"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.io.File
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 fileName Ljava/lang/String;
1 5 1 relocFile Ljava/io/File;
MethodParameters:
Name Flags
fileName
public boolean (int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
iload 1
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.gelf_newphdr:(Ljdk/tools/jaotc/jnilibelf/Pointer;I)Ljdk/tools/jaotc/jnilibelf/Pointer;
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.phdrPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
1: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.phdrPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
ifnonnull 4
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "gelf_newphdr error"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
0 5 1 count I
MethodParameters:
Name Flags
count
public boolean setProgHdrTypeToSelf();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.ehdrPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.phdrPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.phdr_set_type_self:(ILjdk/tools/jaotc/jnilibelf/Pointer;Ljdk/tools/jaotc/jnilibelf/Pointer;)V
1: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
getstatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF$Elf_Cmd.ELF_C_SET:Ljdk/tools/jaotc/jnilibelf/JNILibELFAPI$LibELF$Elf_Cmd;
invokevirtual jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF$Elf_Cmd.intValue:()I
iconst_1
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elf_flagphdr:(Ljdk/tools/jaotc/jnilibelf/Pointer;II)I
pop
2: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
public int createSection(java.lang.String, byte[], jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF$Elf_Type, int, int, int, int, int);
descriptor: (Ljava/lang/String;[BLjdk/tools/jaotc/jnilibelf/JNILibELFAPI$LibELF$Elf_Type;IIIII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=17, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elf_newscn:(Ljdk/tools/jaotc/jnilibelf/Pointer;)Ljdk/tools/jaotc/jnilibelf/Pointer;
astore 9
start local 9 1: aload 9
ifnonnull 3
2: new java.lang.InternalError
dup
ldc "elf_newscn error"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: jdk.tools.jaotc.jnilibelf.Pointer
StackMap stack:
aload 9
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elf_newdata:(Ljdk/tools/jaotc/jnilibelf/Pointer;)Ljdk/tools/jaotc/jnilibelf/Pointer;
astore 10
start local 10 4: aload 10
ifnonnull 7
5: iconst_m1
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elf_errmsg:(I)Ljava/lang/String;
astore 11
start local 11 6: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "elf_newdata error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 11 7: StackMap locals: jdk.tools.jaotc.jnilibelf.Pointer
StackMap stack:
aload 9
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elf64_getshdr:(Ljdk/tools/jaotc/jnilibelf/Pointer;)Ljdk/tools/jaotc/jnilibelf/Pointer;
astore 11
start local 11 8: aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifeq 12
9: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 11
iconst_0
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Shdr_sh_name:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
10: aload 2
astore 12
start local 12 11: goto 36
end local 12 12: StackMap locals: jdk.tools.jaotc.jnilibelf.Pointer
StackMap stack:
aload 1
ldc ".shstrtab"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 24
13: ldc ".shstrtab\u0000"
astore 13
start local 13 14: aload 2
arraylength
iconst_1
iadd
aload 13
invokevirtual java.lang.String.length:()I
iadd
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 14
start local 14 15: aload 14
iconst_0
iconst_0
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
16: aload 14
iconst_1
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
17: aload 14
aload 2
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
18: aload 14
aload 2
arraylength
iconst_1
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
19: aload 14
aload 13
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
20: aload 14
invokevirtual java.nio.ByteBuffer.array:()[B
astore 12
start local 12 21: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 11
aload 2
arraylength
iconst_1
iadd
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Shdr_sh_name:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
22: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.ehdrPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
aload 9
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elf_ndxscn:(Ljdk/tools/jaotc/jnilibelf/Pointer;)I
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Ehdr_e_shstrndx:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
end local 14 end local 13 23: goto 36
end local 12 StackMap locals:
StackMap stack:
24: aload 1
ldc ".strtab"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 33
25: aload 2
arraylength
iconst_1
iadd
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 13
start local 13 26: aload 13
iconst_0
iconst_0
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
27: aload 13
iconst_1
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
28: aload 13
aload 2
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
29: aload 13
invokevirtual java.nio.ByteBuffer.array:()[B
astore 12
start local 12 30: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 11
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.shStrTabContent:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iconst_1
iadd
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Shdr_sh_name:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
31: aload 0
dup
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.shStrTabContent:Ljava/lang/String;
new java.lang.StringBuilder
dup_x1
swap
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iconst_0
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.shStrTabContent:Ljava/lang/String;
end local 13 32: goto 36
end local 12 33: StackMap locals:
StackMap stack:
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 11
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.shStrTabContent:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iconst_1
iadd
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Shdr_sh_name:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
34: aload 0
dup
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.shStrTabContent:Ljava/lang/String;
new java.lang.StringBuilder
dup_x1
swap
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iconst_0
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.shStrTabContent:Ljava/lang/String;
35: aload 2
astore 12
start local 12 36: StackMap locals: byte[]
StackMap stack:
aload 12
arraylength
istore 13
start local 13 37: aconst_null
astore 14
start local 14 38: iload 5
bipush 8
if_icmpeq 43
39: getstatic jdk.tools.jaotc.jnilibelf.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
iload 13
iconst_1
iadd
i2l
invokevirtual jdk.internal.misc.Unsafe.allocateMemory:(J)J
lstore 15
start local 15 40: new jdk.tools.jaotc.jnilibelf.Pointer
dup
lload 15
invokespecial jdk.tools.jaotc.jnilibelf.Pointer.<init>:(J)V
astore 14
41: aload 14
aload 12
invokevirtual jdk.tools.jaotc.jnilibelf.Pointer.put:([B)V
end local 15 42: goto 44
43: StackMap locals: int jdk.tools.jaotc.jnilibelf.Pointer
StackMap stack:
new jdk.tools.jaotc.jnilibelf.Pointer
dup
lconst_0
invokespecial jdk.tools.jaotc.jnilibelf.Pointer.<init>:(J)V
astore 14
44: StackMap locals:
StackMap stack:
aload 10
iload 4
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Data_d_align:(Ljdk/tools/jaotc/jnilibelf/Pointer;I)V
45: aload 10
aload 14
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Data_d_buf:(Ljdk/tools/jaotc/jnilibelf/Pointer;Ljdk/tools/jaotc/jnilibelf/Pointer;)V
46: aload 10
iload 13
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Data_d_size:(Ljdk/tools/jaotc/jnilibelf/Pointer;I)V
47: aload 10
iconst_0
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Data_d_off:(Ljdk/tools/jaotc/jnilibelf/Pointer;I)V
48: aload 10
aload 3
invokevirtual jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF$Elf_Type.intValue:()I
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Data_d_type:(Ljdk/tools/jaotc/jnilibelf/Pointer;I)V
49: aload 10
iconst_1
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Data_d_version:(Ljdk/tools/jaotc/jnilibelf/Pointer;I)V
50: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 11
iload 5
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Shdr_sh_type:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
51: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 11
iload 6
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Shdr_sh_flags:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
52: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 11
iconst_0
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Shdr_sh_entsize:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
53: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 11
iload 7
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Shdr_sh_link:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
54: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
aload 11
iload 8
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.set_Shdr_sh_info:(ILjdk/tools/jaotc/jnilibelf/Pointer;I)V
55: aload 9
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elf_ndxscn:(Ljdk/tools/jaotc/jnilibelf/Pointer;)I
istore 15
start local 15 56: iload 15
ireturn
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 57 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
0 57 1 secName Ljava/lang/String;
0 57 2 scnData [B
0 57 3 dataType Ljdk/tools/jaotc/jnilibelf/JNILibELFAPI$LibELF$Elf_Type;
0 57 4 align I
0 57 5 scnType I
0 57 6 scnFlags I
0 57 7 scnLink I
0 57 8 scnInfo I
1 57 9 scnPtr Ljdk/tools/jaotc/jnilibelf/Pointer;
4 57 10 scnDataPtr Ljdk/tools/jaotc/jnilibelf/Pointer;
6 7 11 errMsg Ljava/lang/String;
8 57 11 scnHdrPtr Ljdk/tools/jaotc/jnilibelf/Pointer;
11 12 12 modScnData [B
21 24 12 modScnData [B
30 33 12 modScnData [B
36 57 12 modScnData [B
14 23 13 shstrtabSecName Ljava/lang/String;
15 23 14 nbuf Ljava/nio/ByteBuffer;
26 32 13 nbuf Ljava/nio/ByteBuffer;
37 57 13 scnDataBufSize I
38 57 14 scnDataBufPtr Ljdk/tools/jaotc/jnilibelf/Pointer;
40 42 15 address J
56 57 15 index I
MethodParameters:
Name Flags
secName
scnData
dataType
align
scnType
scnFlags
scnLink
scnInfo
public jdk.tools.jaotc.jnilibelf.ELFSymbol createELFSymbolEntry(java.lang.String, int, int, int, int, int, boolean);
descriptor: (Ljava/lang/String;IIIIIZ)Ljdk/tools/jaotc/jnilibelf/ELFSymbol;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=14, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifeq 3
1: iconst_0
istore 8
start local 8 2: goto 6
end local 8 3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.strTabNrOfBytes:I
iconst_1
iadd
istore 8
start local 8 4: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.strTabContent:Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iconst_0
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
5: aload 0
dup
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.strTabNrOfBytes:I
aload 1
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
arraylength
iconst_1
iadd
iadd
putfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.strTabNrOfBytes:I
6: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
iload 8
iload 2
iload 3
iload 4
iload 5
iload 6
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.create_sym_entry:(IIIIIII)J
lstore 9
start local 9 7: lload 9
lconst_0
lcmp
ifne 9
8: new java.lang.InternalError
dup
ldc "create_sym_entry failed"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: long
StackMap stack:
new jdk.tools.jaotc.jnilibelf.Pointer
dup
lload 9
invokespecial jdk.tools.jaotc.jnilibelf.Pointer.<init>:(J)V
astore 11
start local 11 10: iload 7
ifeq 15
11: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.localSymbolIndex:Ljava/util/List;
invokeinterface java.util.List.size:()I
istore 12
start local 12 12: new jdk.tools.jaotc.jnilibelf.ELFSymbol
dup
aload 1
iload 12
aload 11
iload 7
invokespecial jdk.tools.jaotc.jnilibelf.ELFSymbol.<init>:(Ljava/lang/String;ILjdk/tools/jaotc/jnilibelf/Pointer;Z)V
astore 13
start local 13 13: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.localSymbolIndex:Ljava/util/List;
aload 13
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: aload 13
areturn
end local 13 end local 12 15: StackMap locals: jdk.tools.jaotc.jnilibelf.Pointer
StackMap stack:
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.globalSymbolIndex:Ljava/util/List;
invokeinterface java.util.List.size:()I
istore 12
start local 12 16: new jdk.tools.jaotc.jnilibelf.ELFSymbol
dup
aload 1
iload 12
aload 11
iload 7
invokespecial jdk.tools.jaotc.jnilibelf.ELFSymbol.<init>:(Ljava/lang/String;ILjdk/tools/jaotc/jnilibelf/Pointer;Z)V
astore 13
start local 13 17: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.globalSymbolIndex:Ljava/util/List;
aload 13
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
18: aload 13
areturn
end local 13 end local 12 end local 11 end local 9 end local 8 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 19 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
0 19 1 name Ljava/lang/String;
0 19 2 type I
0 19 3 bind I
0 19 4 secHdrIndex I
0 19 5 size I
0 19 6 value I
0 19 7 isLocal Z
2 3 8 index I
4 19 8 index I
7 19 9 address J
10 19 11 ptr Ljdk/tools/jaotc/jnilibelf/Pointer;
12 15 12 localIndex I
13 15 13 symbol Ljdk/tools/jaotc/jnilibelf/ELFSymbol;
16 19 12 globalIndex I
17 19 13 symbol Ljdk/tools/jaotc/jnilibelf/ELFSymbol;
MethodParameters:
Name Flags
name
type
bind
secHdrIndex
size
value
isLocal
public void createELFRelocationEntry(jdk.tools.jaotc.jnilibelf.ELFContainer, int, int, int, jdk.tools.jaotc.jnilibelf.ELFSymbol);
descriptor: (Ljdk/tools/jaotc/jnilibelf/ELFContainer;IIILjdk/tools/jaotc/jnilibelf/ELFSymbol;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 5
invokevirtual jdk.tools.jaotc.jnilibelf.ELFSymbol.isLocal:()Z
ifeq 3
1: aload 5
invokevirtual jdk.tools.jaotc.jnilibelf.ELFSymbol.getIndex:()I
istore 6
start local 6 2: goto 4
end local 6 3: StackMap locals:
StackMap stack:
aload 5
invokevirtual jdk.tools.jaotc.jnilibelf.ELFSymbol.getIndex:()I
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.localSymbolIndex:Ljava/util/List;
invokeinterface java.util.List.size:()I
iadd
istore 6
start local 6 4: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfClass:I
iload 2
iload 6
iload 3
iload 4
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.createReloca:I
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.create_reloc_entry:(IIIIII)J
lstore 7
start local 7 5: lload 7
lconst_0
lcmp
ifne 7
6: new java.lang.InternalError
dup
ldc "create_reloc_entry failed"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: long
StackMap stack:
new jdk.tools.jaotc.jnilibelf.Pointer
dup
lload 7
invokespecial jdk.tools.jaotc.jnilibelf.Pointer.<init>:(J)V
astore 9
start local 9 8: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.relocTables:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 10
9: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.relocTables:Ljava/util/Map;
aload 1
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: StackMap locals: jdk.tools.jaotc.jnilibelf.Pointer
StackMap stack:
aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.relocTables:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.ArrayList
aload 9
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
11: return
end local 9 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 12 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
0 12 1 container Ljdk/tools/jaotc/jnilibelf/ELFContainer;
0 12 2 offset I
0 12 3 type I
0 12 4 addend I
0 12 5 elfSymbol Ljdk/tools/jaotc/jnilibelf/ELFSymbol;
2 3 6 index I
4 12 6 index I
5 12 7 address J
8 12 9 ptr Ljdk/tools/jaotc/jnilibelf/Pointer;
MethodParameters:
Name Flags
container
offset
type
addend
elfSymbol
public boolean elfUpdate(jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF$Elf_Cmd);
descriptor: (Ljdk/tools/jaotc/jnilibelf/JNILibELFAPI$LibELF$Elf_Cmd;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
aload 1
invokevirtual jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF$Elf_Cmd.intValue:()I
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elf_update:(Ljdk/tools/jaotc/jnilibelf/Pointer;I)J
pop2
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
0 2 1 cmd Ljdk/tools/jaotc/jnilibelf/JNILibELFAPI$LibELF$Elf_Cmd;
MethodParameters:
Name Flags
cmd
public boolean elfEnd();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.elfPtr:Ljdk/tools/jaotc/jnilibelf/Pointer;
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.elf_end:(Ljdk/tools/jaotc/jnilibelf/Pointer;)I
pop
1: aload 0
getfield jdk.tools.jaotc.jnilibelf.JNIELFContainer.outFileDesc:I
invokestatic jdk.tools.jaotc.jnilibelf.JNILibELFAPI.close:(I)I
pop
2: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/tools/jaotc/jnilibelf/JNIELFContainer;
}
SourceFile: "JNIELFContainer.java"
InnerClasses:
public abstract LibELF = jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF of jdk.tools.jaotc.jnilibelf.JNILibELFAPI
public final Elf_Cmd = jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF$Elf_Cmd of jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF
public final Elf_Type = jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF$Elf_Type of jdk.tools.jaotc.jnilibelf.JNILibELFAPI$LibELF