public class jdk.tools.jaotc.binformat.macho.JMachORelocObject
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.tools.jaotc.binformat.macho.JMachORelocObject
super_class: java.lang.Object
{
private final jdk.tools.jaotc.binformat.BinaryContainer binContainer;
descriptor: Ljdk/tools/jaotc/binformat/BinaryContainer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.tools.jaotc.binformat.macho.MachOContainer machoContainer;
descriptor: Ljdk/tools/jaotc/binformat/macho/MachOContainer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int segmentSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$jdk$tools$jaotc$binformat$Relocation$RelocType;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljdk/tools/jaotc/binformat/macho/JMachORelocObject;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic jdk.tools.jaotc.binformat.macho.JMachORelocObject.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.tools.jaotc.binformat.BinaryContainer, java.lang.String);
descriptor: (Ljdk/tools/jaotc/binformat/BinaryContainer;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, 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
aload 1
putfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
2: aload 0
new jdk.tools.jaotc.binformat.macho.MachOContainer
dup
aload 2
invokespecial jdk.tools.jaotc.binformat.macho.MachOContainer.<init>:(Ljava/lang/String;)V
putfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.machoContainer:Ljdk/tools/jaotc/binformat/macho/MachOContainer;
3: aload 0
aload 1
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getCodeSegmentSize:()I
putfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.segmentSize:I
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/tools/jaotc/binformat/macho/JMachORelocObject;
0 5 1 binContainer Ljdk/tools/jaotc/binformat/BinaryContainer;
0 5 2 outputFileName Ljava/lang/String;
MethodParameters:
Name Flags
binContainer
outputFileName
private void createByteSection(java.util.ArrayList<jdk.tools.jaotc.binformat.macho.MachOSection>, jdk.tools.jaotc.binformat.ByteContainer, java.lang.String, java.lang.String, );
descriptor: (Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ByteContainer;Ljava/lang/String;Ljava/lang/String;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
invokevirtual jdk.tools.jaotc.binformat.ByteContainer.getByteArray:()[B
arraylength
pop
1: new jdk.tools.jaotc.binformat.macho.MachOSection
dup
aload 3
2: aload 4
3: aload 2
invokevirtual jdk.tools.jaotc.binformat.ByteContainer.getByteArray:()[B
4: iload 5
5: aload 2
invokevirtual jdk.tools.jaotc.binformat.ByteContainer.hasRelocations:()Z
6: aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.segmentSize:I
7: invokespecial jdk.tools.jaotc.binformat.macho.MachOSection.<init>:(Ljava/lang/String;Ljava/lang/String;[BIZI)V
astore 6
start local 6 8: aload 1
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
9: aload 2
aload 1
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
invokevirtual jdk.tools.jaotc.binformat.ByteContainer.setSectionId:(I)V
10: return
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 11 0 this Ljdk/tools/jaotc/binformat/macho/JMachORelocObject;
0 11 1 sections Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;
0 11 2 c Ljdk/tools/jaotc/binformat/ByteContainer;
0 11 3 sectName Ljava/lang/String;
0 11 4 segName Ljava/lang/String;
0 11 5 scnFlags I
8 11 6 sect Ljdk/tools/jaotc/binformat/macho/MachOSection;
Signature: (Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;Ljdk/tools/jaotc/binformat/ByteContainer;Ljava/lang/String;Ljava/lang/String;I)V
MethodParameters:
Name Flags
sections
c
sectName
segName
scnFlags
private void createCodeSection(java.util.ArrayList<jdk.tools.jaotc.binformat.macho.MachOSection>, jdk.tools.jaotc.binformat.CodeContainer);
descriptor: (Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/CodeContainer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
ldc "__text"
ldc "__TEXT"
1: getstatic jdk.tools.jaotc.binformat.macho.MachO$section_64.S_ATTR_PURE_INSTRUCTIONS:I
2: getstatic jdk.tools.jaotc.binformat.macho.MachO$section_64.S_ATTR_SOME_INSTRUCTIONS:I
3: ior
4: invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createByteSection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ByteContainer;Ljava/lang/String;Ljava/lang/String;I)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/tools/jaotc/binformat/macho/JMachORelocObject;
0 6 1 sections Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;
0 6 2 c Ljdk/tools/jaotc/binformat/CodeContainer;
Signature: (Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;Ljdk/tools/jaotc/binformat/CodeContainer;)V
MethodParameters:
Name Flags
sections
c
private void createReadOnlySection(java.util.ArrayList<jdk.tools.jaotc.binformat.macho.MachOSection>, jdk.tools.jaotc.binformat.ReadOnlyDataContainer);
descriptor: (Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aload 2
invokevirtual jdk.tools.jaotc.binformat.ReadOnlyDataContainer.getContainerName:()Ljava/lang/String;
ldc "__TEXT"
1: getstatic jdk.tools.jaotc.binformat.macho.MachO$section_64.S_ATTR_SOME_INSTRUCTIONS:I
2: invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createByteSection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ByteContainer;Ljava/lang/String;Ljava/lang/String;I)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/tools/jaotc/binformat/macho/JMachORelocObject;
0 4 1 sections Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;
0 4 2 c Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;
Signature: (Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;)V
MethodParameters:
Name Flags
sections
c
private void createReadWriteSection(java.util.ArrayList<jdk.tools.jaotc.binformat.macho.MachOSection>, jdk.tools.jaotc.binformat.ByteContainer);
descriptor: (Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ByteContainer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aload 2
invokevirtual jdk.tools.jaotc.binformat.ByteContainer.getContainerName:()Ljava/lang/String;
ldc "__DATA"
getstatic jdk.tools.jaotc.binformat.macho.MachO$section_64.S_REGULAR:I
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createByteSection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ByteContainer;Ljava/lang/String;Ljava/lang/String;I)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/tools/jaotc/binformat/macho/JMachORelocObject;
0 2 1 sections Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;
0 2 2 c Ljdk/tools/jaotc/binformat/ByteContainer;
Signature: (Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;Ljdk/tools/jaotc/binformat/ByteContainer;)V
MethodParameters:
Name Flags
sections
c
public void createMachORelocObject(java.util.Map<jdk.tools.jaotc.binformat.Symbol, java.util.List<jdk.tools.jaotc.binformat.Relocation>>, java.util.Collection<jdk.tools.jaotc.binformat.Symbol>);
descriptor: (Ljava/util/Map;Ljava/util/Collection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=18, args_size=3
start local 0 start local 1 start local 2 0: new jdk.tools.jaotc.binformat.macho.MachOHeader
dup
invokespecial jdk.tools.jaotc.binformat.macho.MachOHeader.<init>:()V
astore 3
start local 3 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 2: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getCodeContainer:()Ljdk/tools/jaotc/binformat/CodeContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createCodeSection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/CodeContainer;)V
3: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getMetaspaceNamesContainer:()Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadOnlySection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;)V
4: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getKlassesOffsetsContainer:()Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadOnlySection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;)V
5: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getMethodsOffsetsContainer:()Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadOnlySection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;)V
6: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getKlassesDependenciesContainer:()Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadOnlySection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;)V
7: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getMethodMetadataContainer:()Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadOnlySection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;)V
8: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getStubsOffsetsContainer:()Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadOnlySection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;)V
9: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getHeaderContainer:()Ljdk/tools/jaotc/binformat/HeaderContainer;
invokevirtual jdk.tools.jaotc.binformat.HeaderContainer.getContainer:()Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadOnlySection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;)V
10: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getCodeSegmentsContainer:()Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadOnlySection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;)V
11: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getConstantDataContainer:()Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadOnlySection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;)V
12: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getConfigContainer:()Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadOnlySection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ReadOnlyDataContainer;)V
13: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getKlassesGotContainer:()Ljdk/tools/jaotc/binformat/ByteContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadWriteSection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ByteContainer;)V
14: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getCountersGotContainer:()Ljdk/tools/jaotc/binformat/ByteContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadWriteSection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ByteContainer;)V
15: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getMetadataGotContainer:()Ljdk/tools/jaotc/binformat/ByteContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadWriteSection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ByteContainer;)V
16: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getMethodStateContainer:()Ljdk/tools/jaotc/binformat/ByteContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadWriteSection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ByteContainer;)V
17: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getOopGotContainer:()Ljdk/tools/jaotc/binformat/ByteContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadWriteSection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ByteContainer;)V
18: aload 0
aload 4
aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getExtLinkageGOTContainer:()Ljdk/tools/jaotc/binformat/ByteContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createReadWriteSection:(Ljava/util/ArrayList;Ljdk/tools/jaotc/binformat/ByteContainer;)V
19: aload 3
iconst_4
getstatic jdk.tools.jaotc.binformat.macho.MachO$segment_command_64.totalsize:I
20: getstatic jdk.tools.jaotc.binformat.macho.MachO$section_64.totalsize:I
aload 4
invokevirtual java.util.ArrayList.size:()I
imul
iadd
21: getstatic jdk.tools.jaotc.binformat.macho.MachO$version_min_command.totalsize:I
iadd
22: getstatic jdk.tools.jaotc.binformat.macho.MachO$symtab_command.totalsize:I
iadd
23: getstatic jdk.tools.jaotc.binformat.macho.MachO$dysymtab_command.totalsize:I
iadd
24: invokevirtual jdk.tools.jaotc.binformat.macho.MachOHeader.setCmdSizes:(II)V
25: getstatic jdk.tools.jaotc.binformat.macho.MachO$mach_header_64.totalsize:I
aload 3
invokevirtual jdk.tools.jaotc.binformat.macho.MachOHeader.getCmdSize:()I
iadd
istore 5
start local 5 26: iload 5
aload 4
iconst_0
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast jdk.tools.jaotc.binformat.macho.MachOSection
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.getAlign:()I
iconst_1
isub
iadd
aload 4
iconst_0
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast jdk.tools.jaotc.binformat.macho.MachOSection
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.getAlign:()I
iconst_1
isub
iconst_m1
ixor
iand
istore 5
27: lconst_0
lstore 6
start local 6 28: iload 5
istore 8
start local 8 29: iconst_0
istore 9
start local 9 30: goto 39
31: StackMap locals: jdk.tools.jaotc.binformat.macho.JMachORelocObject java.util.Map java.util.Collection jdk.tools.jaotc.binformat.macho.MachOHeader java.util.ArrayList int long int int
StackMap stack:
aload 4
iload 9
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast jdk.tools.jaotc.binformat.macho.MachOSection
astore 10
start local 10 32: iload 5
aload 10
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.getAlign:()I
iconst_1
isub
iadd
aload 10
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.getAlign:()I
iconst_1
isub
iconst_m1
ixor
iand
istore 5
33: lload 6
aload 10
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.getAlign:()I
iconst_1
isub
i2l
ladd
aload 10
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.getAlign:()I
iconst_1
isub
iconst_m1
ixor
i2l
land
lstore 6
34: aload 10
iload 5
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.setOffset:(I)V
35: aload 10
lload 6
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.setAddr:(J)V
36: iload 5
i2l
aload 10
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.getSize:()J
ladd
l2i
istore 5
37: lload 6
aload 10
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.getSize:()J
ladd
lstore 6
end local 10 38: iinc 9 1
StackMap locals:
StackMap stack:
39: iload 9
aload 4
invokevirtual java.util.ArrayList.size:()I
if_icmplt 31
end local 9 40: iload 5
iload 8
isub
istore 9
start local 9 41: new jdk.tools.jaotc.binformat.macho.MachOSegment
dup
getstatic jdk.tools.jaotc.binformat.macho.MachO$segment_command_64.totalsize:I
42: getstatic jdk.tools.jaotc.binformat.macho.MachO$section_64.totalsize:I
aload 4
invokevirtual java.util.ArrayList.size:()I
imul
iadd
43: iload 8
44: iload 9
45: aload 4
invokevirtual java.util.ArrayList.size:()I
46: invokespecial jdk.tools.jaotc.binformat.macho.MachOSegment.<init>:(IIII)V
astore 10
start local 10 47: new jdk.tools.jaotc.binformat.macho.MachOVersion
dup
invokespecial jdk.tools.jaotc.binformat.macho.MachOVersion.<init>:()V
astore 11
start local 11 48: aload 4
aload 2
invokestatic jdk.tools.jaotc.binformat.macho.JMachORelocObject.createMachOSymbolTables:(Ljava/util/ArrayList;Ljava/util/Collection;)Ljdk/tools/jaotc/binformat/macho/MachOSymtab;
astore 12
start local 12 49: new jdk.tools.jaotc.binformat.macho.MachODySymtab
dup
aload 12
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSymtab.getNumLocalSyms:()I
50: aload 12
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSymtab.getNumGlobalSyms:()I
51: aload 12
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSymtab.getNumUndefSyms:()I
52: invokespecial jdk.tools.jaotc.binformat.macho.MachODySymtab.<init>:(III)V
astore 13
start local 13 53: aload 0
aload 4
aload 1
aload 12
invokevirtual jdk.tools.jaotc.binformat.macho.JMachORelocObject.createMachORelocTable:(Ljava/util/ArrayList;Ljava/util/Map;Ljdk/tools/jaotc/binformat/macho/MachOSymtab;)Ljdk/tools/jaotc/binformat/macho/MachORelocTable;
astore 14
start local 14 54: iload 5
invokestatic jdk.tools.jaotc.binformat.macho.MachORelocTable.getAlign:()I
iconst_1
isub
iadd
invokestatic jdk.tools.jaotc.binformat.macho.MachORelocTable.getAlign:()I
iconst_1
isub
iconst_m1
ixor
iand
istore 5
55: iconst_0
istore 15
start local 15 56: goto 64
57: StackMap locals: jdk.tools.jaotc.binformat.macho.JMachORelocObject java.util.Map java.util.Collection jdk.tools.jaotc.binformat.macho.MachOHeader java.util.ArrayList int long int int jdk.tools.jaotc.binformat.macho.MachOSegment jdk.tools.jaotc.binformat.macho.MachOVersion jdk.tools.jaotc.binformat.macho.MachOSymtab jdk.tools.jaotc.binformat.macho.MachODySymtab jdk.tools.jaotc.binformat.macho.MachORelocTable int
StackMap stack:
aload 4
iload 15
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast jdk.tools.jaotc.binformat.macho.MachOSection
astore 16
start local 16 58: aload 16
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.hasRelocations:()Z
ifeq 63
59: aload 14
iload 15
invokevirtual jdk.tools.jaotc.binformat.macho.MachORelocTable.getNumRelocs:(I)I
istore 17
start local 17 60: aload 16
iload 5
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.setReloff:(I)V
61: aload 16
iload 17
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.setRelcount:(I)V
62: iload 5
iload 17
getstatic jdk.tools.jaotc.binformat.macho.MachO$reloc_info.totalsize:I
imul
iadd
istore 5
end local 17 end local 16 63: StackMap locals:
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
64: iload 15
aload 4
invokevirtual java.util.ArrayList.size:()I
if_icmplt 57
end local 15 65: iload 5
invokestatic jdk.tools.jaotc.binformat.macho.MachOSymtab.getAlign:()I
iconst_1
isub
iadd
invokestatic jdk.tools.jaotc.binformat.macho.MachOSymtab.getAlign:()I
iconst_1
isub
iconst_m1
ixor
iand
istore 5
66: aload 12
iload 5
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSymtab.setOffset:(I)V
67: aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.machoContainer:Ljdk/tools/jaotc/binformat/macho/MachOContainer;
aload 3
invokevirtual jdk.tools.jaotc.binformat.macho.MachOHeader.getArray:()[B
invokevirtual jdk.tools.jaotc.binformat.macho.MachOContainer.writeBytes:([B)V
68: aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.machoContainer:Ljdk/tools/jaotc/binformat/macho/MachOContainer;
aload 10
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSegment.getArray:()[B
invokevirtual jdk.tools.jaotc.binformat.macho.MachOContainer.writeBytes:([B)V
69: iconst_0
istore 15
start local 15 70: goto 74
71: StackMap locals:
StackMap stack:
aload 4
iload 15
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast jdk.tools.jaotc.binformat.macho.MachOSection
astore 16
start local 16 72: aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.machoContainer:Ljdk/tools/jaotc/binformat/macho/MachOContainer;
aload 16
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.getArray:()[B
invokevirtual jdk.tools.jaotc.binformat.macho.MachOContainer.writeBytes:([B)V
end local 16 73: iinc 15 1
StackMap locals:
StackMap stack:
74: iload 15
aload 4
invokevirtual java.util.ArrayList.size:()I
if_icmplt 71
end local 15 75: aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.machoContainer:Ljdk/tools/jaotc/binformat/macho/MachOContainer;
aload 11
invokevirtual jdk.tools.jaotc.binformat.macho.MachOVersion.getArray:()[B
invokevirtual jdk.tools.jaotc.binformat.macho.MachOContainer.writeBytes:([B)V
76: aload 12
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSymtab.calcSizes:()I
pop
77: aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.machoContainer:Ljdk/tools/jaotc/binformat/macho/MachOContainer;
aload 12
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSymtab.getCmdArray:()[B
invokevirtual jdk.tools.jaotc.binformat.macho.MachOContainer.writeBytes:([B)V
78: aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.machoContainer:Ljdk/tools/jaotc/binformat/macho/MachOContainer;
aload 13
invokevirtual jdk.tools.jaotc.binformat.macho.MachODySymtab.getArray:()[B
invokevirtual jdk.tools.jaotc.binformat.macho.MachOContainer.writeBytes:([B)V
79: iconst_0
istore 15
start local 15 80: goto 84
81: StackMap locals:
StackMap stack:
aload 4
iload 15
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast jdk.tools.jaotc.binformat.macho.MachOSection
astore 16
start local 16 82: aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.machoContainer:Ljdk/tools/jaotc/binformat/macho/MachOContainer;
aload 16
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.getDataArray:()[B
aload 16
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.getAlign:()I
invokevirtual jdk.tools.jaotc.binformat.macho.MachOContainer.writeBytes:([BI)V
end local 16 83: iinc 15 1
StackMap locals:
StackMap stack:
84: iload 15
aload 4
invokevirtual java.util.ArrayList.size:()I
if_icmplt 81
end local 15 85: iconst_0
istore 15
start local 15 86: goto 90
87: StackMap locals:
StackMap stack:
aload 14
iload 15
invokevirtual jdk.tools.jaotc.binformat.macho.MachORelocTable.getNumRelocs:(I)I
ifle 89
88: aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.machoContainer:Ljdk/tools/jaotc/binformat/macho/MachOContainer;
aload 14
iload 15
invokevirtual jdk.tools.jaotc.binformat.macho.MachORelocTable.getRelocData:(I)[B
invokestatic jdk.tools.jaotc.binformat.macho.MachORelocTable.getAlign:()I
invokevirtual jdk.tools.jaotc.binformat.macho.MachOContainer.writeBytes:([BI)V
89: StackMap locals:
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
90: iload 15
aload 4
invokevirtual java.util.ArrayList.size:()I
if_icmplt 87
end local 15 91: aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.machoContainer:Ljdk/tools/jaotc/binformat/macho/MachOContainer;
aload 12
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSymtab.getDataArray:()[B
invokestatic jdk.tools.jaotc.binformat.macho.MachOSymtab.getAlign:()I
invokevirtual jdk.tools.jaotc.binformat.macho.MachOContainer.writeBytes:([BI)V
92: aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.machoContainer:Ljdk/tools/jaotc/binformat/macho/MachOContainer;
invokevirtual jdk.tools.jaotc.binformat.macho.MachOContainer.close:()V
93: return
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 94 0 this Ljdk/tools/jaotc/binformat/macho/JMachORelocObject;
0 94 1 relocationTable Ljava/util/Map<Ljdk/tools/jaotc/binformat/Symbol;Ljava/util/List<Ljdk/tools/jaotc/binformat/Relocation;>;>;
0 94 2 symbols Ljava/util/Collection<Ljdk/tools/jaotc/binformat/Symbol;>;
1 94 3 mh Ljdk/tools/jaotc/binformat/macho/MachOHeader;
2 94 4 sections Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;
26 94 5 file_offset I
28 94 6 address J
29 94 8 segment_offset I
30 40 9 i I
32 38 10 sect Ljdk/tools/jaotc/binformat/macho/MachOSection;
41 94 9 segment_size I
47 94 10 seg Ljdk/tools/jaotc/binformat/macho/MachOSegment;
48 94 11 vers Ljdk/tools/jaotc/binformat/macho/MachOVersion;
49 94 12 symtab Ljdk/tools/jaotc/binformat/macho/MachOSymtab;
53 94 13 dysymtab Ljdk/tools/jaotc/binformat/macho/MachODySymtab;
54 94 14 machORelocs Ljdk/tools/jaotc/binformat/macho/MachORelocTable;
56 65 15 i I
58 63 16 sect Ljdk/tools/jaotc/binformat/macho/MachOSection;
60 63 17 nreloc I
70 75 15 i I
72 73 16 sect Ljdk/tools/jaotc/binformat/macho/MachOSection;
80 85 15 i I
82 83 16 sect Ljdk/tools/jaotc/binformat/macho/MachOSection;
86 91 15 i I
Exceptions:
throws java.io.IOException
Signature: (Ljava/util/Map<Ljdk/tools/jaotc/binformat/Symbol;Ljava/util/List<Ljdk/tools/jaotc/binformat/Relocation;>;>;Ljava/util/Collection<Ljdk/tools/jaotc/binformat/Symbol;>;)V
MethodParameters:
Name Flags
relocationTable
symbols
private static jdk.tools.jaotc.binformat.macho.MachOSymtab createMachOSymbolTables(java.util.ArrayList<jdk.tools.jaotc.binformat.macho.MachOSection>, java.util.Collection<jdk.tools.jaotc.binformat.Symbol>);
descriptor: (Ljava/util/ArrayList;Ljava/util/Collection;)Ljdk/tools/jaotc/binformat/macho/MachOSymtab;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=9, args_size=2
start local 0 start local 1 0: new jdk.tools.jaotc.binformat.macho.MachOSymtab
dup
invokespecial jdk.tools.jaotc.binformat.macho.MachOSymtab.<init>:()V
astore 2
start local 2 1: aload 2
ldc ""
iconst_0
iconst_0
lconst_0
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSymtab.addSymbolEntry:(Ljava/lang/String;BBJ)Ljdk/tools/jaotc/binformat/macho/MachOSymbol;
pop
2: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 12
StackMap locals: java.util.ArrayList java.util.Collection jdk.tools.jaotc.binformat.macho.MachOSymtab top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.tools.jaotc.binformat.Symbol
astore 3
start local 3 4: aload 3
invokevirtual jdk.tools.jaotc.binformat.Symbol.getSection:()Ljdk/tools/jaotc/binformat/ByteContainer;
invokevirtual jdk.tools.jaotc.binformat.ByteContainer.getSectionId:()I
istore 5
start local 5 5: aload 0
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast jdk.tools.jaotc.binformat.macho.MachOSection
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSection.getAddr:()J
lstore 6
start local 6 6: aload 2
aload 3
invokevirtual jdk.tools.jaotc.binformat.Symbol.getName:()Ljava/lang/String;
7: aload 3
invokestatic jdk.tools.jaotc.binformat.macho.JMachORelocObject.getMachOTypeOf:(Ljdk/tools/jaotc/binformat/Symbol;)B
8: iload 5
i2b
9: aload 3
invokevirtual jdk.tools.jaotc.binformat.Symbol.getOffset:()I
i2l
lload 6
ladd
10: invokevirtual jdk.tools.jaotc.binformat.macho.MachOSymtab.addSymbolEntry:(Ljava/lang/String;BBJ)Ljdk/tools/jaotc/binformat/macho/MachOSymbol;
astore 8
start local 8 11: aload 3
aload 8
invokevirtual jdk.tools.jaotc.binformat.Symbol.setNativeSymbol:(Ljdk/tools/jaotc/binformat/NativeSymbol;)V
end local 8 end local 6 end local 5 end local 3 12: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
13: aload 2
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSymtab.updateIndexes:()V
14: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 sections Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;
0 15 1 symbols Ljava/util/Collection<Ljdk/tools/jaotc/binformat/Symbol;>;
1 15 2 symtab Ljdk/tools/jaotc/binformat/macho/MachOSymtab;
4 12 3 symbol Ljdk/tools/jaotc/binformat/Symbol;
5 12 5 sectionId I
6 12 6 sectionAddr J
11 12 8 machoSymbol Ljdk/tools/jaotc/binformat/macho/MachOSymbol;
Signature: (Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;Ljava/util/Collection<Ljdk/tools/jaotc/binformat/Symbol;>;)Ljdk/tools/jaotc/binformat/macho/MachOSymtab;
MethodParameters:
Name Flags
sections
symbols
private static byte getMachOTypeOf(jdk.tools.jaotc.binformat.Symbol);
descriptor: (Ljdk/tools/jaotc/binformat/Symbol;)B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual jdk.tools.jaotc.binformat.Symbol.getKind:()Ljdk/tools/jaotc/binformat/Symbol$Kind;
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aload 0
invokevirtual jdk.tools.jaotc.binformat.Symbol.getBinding:()Ljdk/tools/jaotc/binformat/Symbol$Binding;
getstatic jdk.tools.jaotc.binformat.Symbol$Binding.GLOBAL:Ljdk/tools/jaotc/binformat/Symbol$Binding;
if_acmpne 4
3: iconst_1
istore 2
4: StackMap locals: jdk.tools.jaotc.binformat.Symbol$Kind int
StackMap stack:
aload 1
getstatic jdk.tools.jaotc.binformat.Symbol$Kind.NATIVE_FUNCTION:Ljdk/tools/jaotc/binformat/Symbol$Kind;
if_acmpeq 7
5: aload 1
getstatic jdk.tools.jaotc.binformat.Symbol$Kind.JAVA_FUNCTION:Ljdk/tools/jaotc/binformat/Symbol$Kind;
if_acmpeq 7
6: aload 1
getstatic jdk.tools.jaotc.binformat.Symbol$Kind.OBJECT:Ljdk/tools/jaotc/binformat/Symbol$Kind;
if_acmpne 8
7: StackMap locals:
StackMap stack:
iload 2
bipush 14
ior
i2b
istore 2
8: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 sym Ljdk/tools/jaotc/binformat/Symbol;
1 9 1 kind Ljdk/tools/jaotc/binformat/Symbol$Kind;
2 9 2 type B
MethodParameters:
Name Flags
sym
private jdk.tools.jaotc.binformat.macho.MachORelocTable createMachORelocTable(java.util.ArrayList<jdk.tools.jaotc.binformat.macho.MachOSection>, java.util.Map<jdk.tools.jaotc.binformat.Symbol, java.util.List<jdk.tools.jaotc.binformat.Relocation>>, jdk.tools.jaotc.binformat.macho.MachOSymtab);
descriptor: (Ljava/util/ArrayList;Ljava/util/Map;Ljdk/tools/jaotc/binformat/macho/MachOSymtab;)Ljdk/tools/jaotc/binformat/macho/MachORelocTable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new jdk.tools.jaotc.binformat.macho.MachORelocTable
dup
aload 1
invokevirtual java.util.ArrayList.size:()I
invokespecial jdk.tools.jaotc.binformat.macho.MachORelocTable.<init>:(I)V
astore 4
start local 4 1: aload 2
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 9
StackMap locals: jdk.tools.jaotc.binformat.macho.JMachORelocObject java.util.ArrayList java.util.Map jdk.tools.jaotc.binformat.macho.MachOSymtab jdk.tools.jaotc.binformat.macho.MachORelocTable top java.util.Iterator
StackMap stack:
2: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 5
start local 5 3: aload 5
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.List
astore 7
start local 7 4: aload 5
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast jdk.tools.jaotc.binformat.Symbol
astore 8
start local 8 5: aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 8
StackMap locals: jdk.tools.jaotc.binformat.macho.JMachORelocObject java.util.ArrayList java.util.Map jdk.tools.jaotc.binformat.macho.MachOSymtab jdk.tools.jaotc.binformat.macho.MachORelocTable java.util.Map$Entry java.util.Iterator java.util.List jdk.tools.jaotc.binformat.Symbol top java.util.Iterator
StackMap stack:
6: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.tools.jaotc.binformat.Relocation
astore 9
start local 9 7: aload 8
aload 9
aload 4
invokestatic jdk.tools.jaotc.binformat.macho.JMachORelocObject.createRelocation:(Ljdk/tools/jaotc/binformat/Symbol;Ljdk/tools/jaotc/binformat/Relocation;Ljdk/tools/jaotc/binformat/macho/MachORelocTable;)V
end local 9 8: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 8 end local 7 end local 5 9: StackMap locals: jdk.tools.jaotc.binformat.macho.JMachORelocObject java.util.ArrayList java.util.Map jdk.tools.jaotc.binformat.macho.MachOSymtab jdk.tools.jaotc.binformat.macho.MachORelocTable top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
10: aload 0
getfield jdk.tools.jaotc.binformat.macho.JMachORelocObject.binContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getUniqueRelocationTable:()Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 13
StackMap locals:
StackMap stack:
11: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 5
start local 5 12: aload 5
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast jdk.tools.jaotc.binformat.Symbol
aload 5
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast jdk.tools.jaotc.binformat.Relocation
aload 4
invokestatic jdk.tools.jaotc.binformat.macho.JMachORelocObject.createRelocation:(Ljdk/tools/jaotc/binformat/Symbol;Ljdk/tools/jaotc/binformat/Relocation;Ljdk/tools/jaotc/binformat/macho/MachORelocTable;)V
end local 5 13: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
14: 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 15 0 this Ljdk/tools/jaotc/binformat/macho/JMachORelocObject;
0 15 1 sections Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;
0 15 2 relocationTable Ljava/util/Map<Ljdk/tools/jaotc/binformat/Symbol;Ljava/util/List<Ljdk/tools/jaotc/binformat/Relocation;>;>;
0 15 3 symtab Ljdk/tools/jaotc/binformat/macho/MachOSymtab;
1 15 4 machORelocTable Ljdk/tools/jaotc/binformat/macho/MachORelocTable;
3 9 5 entry Ljava/util/Map$Entry<Ljdk/tools/jaotc/binformat/Symbol;Ljava/util/List<Ljdk/tools/jaotc/binformat/Relocation;>;>;
4 9 7 relocs Ljava/util/List<Ljdk/tools/jaotc/binformat/Relocation;>;
5 9 8 symbol Ljdk/tools/jaotc/binformat/Symbol;
7 8 9 reloc Ljdk/tools/jaotc/binformat/Relocation;
12 13 5 entry Ljava/util/Map$Entry<Ljdk/tools/jaotc/binformat/Symbol;Ljdk/tools/jaotc/binformat/Relocation;>;
Signature: (Ljava/util/ArrayList<Ljdk/tools/jaotc/binformat/macho/MachOSection;>;Ljava/util/Map<Ljdk/tools/jaotc/binformat/Symbol;Ljava/util/List<Ljdk/tools/jaotc/binformat/Relocation;>;>;Ljdk/tools/jaotc/binformat/macho/MachOSymtab;)Ljdk/tools/jaotc/binformat/macho/MachORelocTable;
MethodParameters:
Name Flags
sections
relocationTable
symtab
private static void createRelocation(jdk.tools.jaotc.binformat.Symbol, jdk.tools.jaotc.binformat.Relocation, jdk.tools.jaotc.binformat.macho.MachORelocTable);
descriptor: (Ljdk/tools/jaotc/binformat/Symbol;Ljdk/tools/jaotc/binformat/Relocation;Ljdk/tools/jaotc/binformat/macho/MachORelocTable;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual jdk.tools.jaotc.binformat.Relocation.getType:()Ljdk/tools/jaotc/binformat/Relocation$RelocType;
astore 3
start local 3 1: aload 3
invokestatic jdk.tools.jaotc.binformat.macho.JMachORelocObject.getMachORelocationType:(Ljdk/tools/jaotc/binformat/Relocation$RelocType;)I
istore 4
start local 4 2: aload 0
invokevirtual jdk.tools.jaotc.binformat.Symbol.getNativeSymbol:()Ljdk/tools/jaotc/binformat/NativeSymbol;
checkcast jdk.tools.jaotc.binformat.macho.MachOSymbol
astore 5
start local 5 3: aload 5
invokevirtual jdk.tools.jaotc.binformat.macho.MachOSymbol.getIndex:()I
istore 6
start local 6 4: aload 1
invokevirtual jdk.tools.jaotc.binformat.Relocation.getSection:()Ljdk/tools/jaotc/binformat/ByteContainer;
invokevirtual jdk.tools.jaotc.binformat.ByteContainer.getSectionId:()I
istore 7
start local 7 5: aload 1
invokevirtual jdk.tools.jaotc.binformat.Relocation.getOffset:()I
istore 8
start local 8 6: iconst_0
istore 9
start local 9 7: iconst_0
istore 10
start local 10 8: iconst_1
istore 11
start local 11 9: invokestatic jdk.tools.jaotc.binformat.macho.JMachORelocObject.$SWITCH_TABLE$jdk$tools$jaotc$binformat$Relocation$RelocType:()[I
aload 3
invokevirtual jdk.tools.jaotc.binformat.Relocation$RelocType.ordinal:()I
iaload
tableswitch { // 2 - 8
2: 15
3: 10
4: 10
5: 10
6: 16
7: 21
8: 16
default: 24
}
10: StackMap locals: jdk.tools.jaotc.binformat.Symbol jdk.tools.jaotc.binformat.Relocation jdk.tools.jaotc.binformat.macho.MachORelocTable jdk.tools.jaotc.binformat.Relocation$RelocType int jdk.tools.jaotc.binformat.macho.MachOSymbol int int int int int int
StackMap stack:
bipush -4
istore 12
start local 12 11: iload 8
aload 1
invokevirtual jdk.tools.jaotc.binformat.Relocation.getSize:()I
iadd
iload 12
iadd
istore 8
12: iconst_1
istore 9
13: iconst_2
istore 10
14: goto 25
end local 12 15: StackMap locals:
StackMap stack:
return
16: StackMap locals:
StackMap stack:
bipush -4
istore 12
start local 12 17: iload 8
iload 12
iadd
istore 8
18: iconst_1
istore 9
19: iconst_2
istore 10
20: goto 25
end local 12 21: StackMap locals:
StackMap stack:
iconst_0
istore 9
22: iconst_3
istore 10
23: goto 25
24: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "Unhandled relocation type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
aload 2
iload 7
iload 8
iload 6
26: iload 9
iload 10
iload 11
27: iload 4
28: invokevirtual jdk.tools.jaotc.binformat.macho.MachORelocTable.createRelocationEntry:(IIIIIII)V
29: return
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 30 0 symbol Ljdk/tools/jaotc/binformat/Symbol;
0 30 1 reloc Ljdk/tools/jaotc/binformat/Relocation;
0 30 2 machORelocTable Ljdk/tools/jaotc/binformat/macho/MachORelocTable;
1 30 3 relocType Ljdk/tools/jaotc/binformat/Relocation$RelocType;
2 30 4 machORelocType I
3 30 5 sym Ljdk/tools/jaotc/binformat/macho/MachOSymbol;
4 30 6 symno I
5 30 7 sectindex I
6 30 8 offset I
7 30 9 pcrel I
8 30 10 length I
9 30 11 isextern I
11 15 12 addend I
17 21 12 addend I
MethodParameters:
Name Flags
symbol
reloc
machORelocTable
private static int getMachORelocationType(jdk.tools.jaotc.binformat.Relocation$RelocType);
descriptor: (Ljdk/tools/jaotc/binformat/Relocation$RelocType;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: invokestatic jdk.tools.jaotc.binformat.macho.MachOTargetInfo.getMachOArch:()I
tableswitch { // 16777223 - 16777223
16777223: 2
default: 20
}
2: StackMap locals: int
StackMap stack:
aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.JAVA_CALL_DIRECT:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
if_acmpeq 4
3: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.FOREIGN_CALL_INDIRECT_GOT:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
if_acmpne 6
4: StackMap locals:
StackMap stack:
iconst_2
istore 1
5: goto 21
StackMap locals:
StackMap stack:
6: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.STUB_CALL_DIRECT:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
if_acmpne 9
7: iconst_2
istore 1
8: goto 21
StackMap locals:
StackMap stack:
9: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.JAVA_CALL_INDIRECT:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
if_acmpne 12
10: iconst_0
istore 1
11: goto 21
StackMap locals:
StackMap stack:
12: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.METASPACE_GOT_REFERENCE:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
if_acmpeq 14
13: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.EXTERNAL_PLT_TO_GOT:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
if_acmpne 16
14: StackMap locals:
StackMap stack:
iconst_2
istore 1
15: goto 21
StackMap locals:
StackMap stack:
16: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.EXTERNAL_GOT_TO_PLT:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
if_acmpne 19
17: iconst_0
istore 1
18: goto 21
19: StackMap locals:
StackMap stack:
getstatic jdk.tools.jaotc.binformat.macho.JMachORelocObject.$assertionsDisabled:Z
ifne 21
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unhandled relocation type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
20: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Relocation Type mapping: Unhandled architecture"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
21: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 relocType Ljdk/tools/jaotc/binformat/Relocation$RelocType;
1 22 1 machORelocType I
MethodParameters:
Name Flags
relocType
static int[] $SWITCH_TABLE$jdk$tools$jaotc$binformat$Relocation$RelocType();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.tools.jaotc.binformat.macho.JMachORelocObject.$SWITCH_TABLE$jdk$tools$jaotc$binformat$Relocation$RelocType:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.tools.jaotc.binformat.Relocation$RelocType.values:()[Ljdk/tools/jaotc/binformat/Relocation$RelocType;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.EXTERNAL_GOT_TO_PLT:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
invokevirtual jdk.tools.jaotc.binformat.Relocation$RelocType.ordinal:()I
bipush 7
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.EXTERNAL_PLT_TO_GOT:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
invokevirtual jdk.tools.jaotc.binformat.Relocation$RelocType.ordinal:()I
bipush 8
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.FOREIGN_CALL_INDIRECT_GOT:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
invokevirtual jdk.tools.jaotc.binformat.Relocation$RelocType.ordinal:()I
iconst_4
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.JAVA_CALL_DIRECT:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
invokevirtual jdk.tools.jaotc.binformat.Relocation$RelocType.ordinal:()I
iconst_3
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.JAVA_CALL_INDIRECT:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
invokevirtual jdk.tools.jaotc.binformat.Relocation$RelocType.ordinal:()I
iconst_2
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.METASPACE_GOT_REFERENCE:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
invokevirtual jdk.tools.jaotc.binformat.Relocation$RelocType.ordinal:()I
bipush 6
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.STUB_CALL_DIRECT:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
invokevirtual jdk.tools.jaotc.binformat.Relocation$RelocType.ordinal:()I
iconst_5
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic jdk.tools.jaotc.binformat.Relocation$RelocType.UNDEFINED:Ljdk/tools/jaotc/binformat/Relocation$RelocType;
invokevirtual jdk.tools.jaotc.binformat.Relocation$RelocType.ordinal:()I
iconst_1
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
dup
putstatic jdk.tools.jaotc.binformat.macho.JMachORelocObject.$SWITCH_TABLE$jdk$tools$jaotc$binformat$Relocation$RelocType:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
}
SourceFile: "JMachORelocObject.java"
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
public final RelocType = jdk.tools.jaotc.binformat.Relocation$RelocType of jdk.tools.jaotc.binformat.Relocation
public final Binding = jdk.tools.jaotc.binformat.Symbol$Binding of jdk.tools.jaotc.binformat.Symbol
public final Kind = jdk.tools.jaotc.binformat.Symbol$Kind of jdk.tools.jaotc.binformat.Symbol
final dysymtab_command = jdk.tools.jaotc.binformat.macho.MachO$dysymtab_command of jdk.tools.jaotc.binformat.macho.MachO
final mach_header_64 = jdk.tools.jaotc.binformat.macho.MachO$mach_header_64 of jdk.tools.jaotc.binformat.macho.MachO
final reloc_info = jdk.tools.jaotc.binformat.macho.MachO$reloc_info of jdk.tools.jaotc.binformat.macho.MachO
final section_64 = jdk.tools.jaotc.binformat.macho.MachO$section_64 of jdk.tools.jaotc.binformat.macho.MachO
final segment_command_64 = jdk.tools.jaotc.binformat.macho.MachO$segment_command_64 of jdk.tools.jaotc.binformat.macho.MachO
final symtab_command = jdk.tools.jaotc.binformat.macho.MachO$symtab_command of jdk.tools.jaotc.binformat.macho.MachO
final version_min_command = jdk.tools.jaotc.binformat.macho.MachO$version_min_command of jdk.tools.jaotc.binformat.macho.MachO