final class jdk.tools.jaotc.CodeSectionProcessor
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.tools.jaotc.CodeSectionProcessor
super_class: java.lang.Object
{
private final org.graalvm.compiler.options.OptionValues optionValues;
descriptor: Lorg/graalvm/compiler/options/OptionValues;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.TargetDescription target;
descriptor: Ljdk/vm/ci/code/TargetDescription;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.tools.jaotc.binformat.BinaryContainer binaryContainer;
descriptor: Ljdk/tools/jaotc/binformat/BinaryContainer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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/CodeSectionProcessor;
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.CodeSectionProcessor.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(jdk.tools.jaotc.DataBuilder);
descriptor: (Ljdk/tools/jaotc/DataBuilder;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokevirtual jdk.tools.jaotc.DataBuilder.getBackend:()Lorg/graalvm/compiler/hotspot/HotSpotHostBackend;
invokevirtual org.graalvm.compiler.hotspot.HotSpotHostBackend.getTarget:()Ljdk/vm/ci/code/TargetDescription;
putfield jdk.tools.jaotc.CodeSectionProcessor.target:Ljdk/vm/ci/code/TargetDescription;
2: aload 0
aload 1
invokevirtual jdk.tools.jaotc.DataBuilder.getBinaryContainer:()Ljdk/tools/jaotc/binformat/BinaryContainer;
putfield jdk.tools.jaotc.CodeSectionProcessor.binaryContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
3: aload 0
aload 1
invokevirtual jdk.tools.jaotc.DataBuilder.getBackend:()Lorg/graalvm/compiler/hotspot/HotSpotHostBackend;
invokevirtual org.graalvm.compiler.hotspot.HotSpotHostBackend.getRuntime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
putfield jdk.tools.jaotc.CodeSectionProcessor.optionValues:Lorg/graalvm/compiler/options/OptionValues;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/tools/jaotc/CodeSectionProcessor;
0 5 1 dataBuilder Ljdk/tools/jaotc/DataBuilder;
MethodParameters:
Name Flags
dataBuilder
void process(jdk.tools.jaotc.AOTCompiledClass);
descriptor: (Ljdk/tools/jaotc/AOTCompiledClass;)V
flags: (0x0000)
Code:
stack=6, locals=20, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.tools.jaotc.AOTCompiledClass.getCompiledMethods:()Ljava/util/ArrayList;
astore 2
start local 2 1: aload 2
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 44
StackMap locals: jdk.tools.jaotc.CodeSectionProcessor jdk.tools.jaotc.AOTCompiledClass java.util.ArrayList top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.tools.jaotc.CompiledMethodInfo
astore 3
start local 3 3: aload 3
invokevirtual jdk.tools.jaotc.CompiledMethodInfo.getCompilationResult:()Lorg/graalvm/compiler/code/CompilationResult;
astore 5
start local 5 4: aload 5
invokevirtual org.graalvm.compiler.code.CompilationResult.getTargetCode:()[B
astore 6
start local 6 5: aload 5
invokevirtual org.graalvm.compiler.code.CompilationResult.getTargetCodeSize:()I
istore 7
start local 7 6: aload 3
invokevirtual jdk.tools.jaotc.CompiledMethodInfo.getMethodInfo:()Ljdk/tools/jaotc/JavaMethodInfo;
astore 8
start local 8 7: aload 5
invokevirtual org.graalvm.compiler.code.CompilationResult.getInfopoints:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 18
StackMap locals: jdk.tools.jaotc.CodeSectionProcessor jdk.tools.jaotc.AOTCompiledClass java.util.ArrayList jdk.tools.jaotc.CompiledMethodInfo java.util.Iterator org.graalvm.compiler.code.CompilationResult byte[] int jdk.tools.jaotc.JavaMethodInfo top java.util.Iterator
StackMap stack:
8: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.code.site.Infopoint
astore 9
start local 9 9: aload 9
getfield jdk.vm.ci.code.site.Infopoint.reason:Ljdk/vm/ci/code/site/InfopointReason;
getstatic jdk.vm.ci.code.site.InfopointReason.CALL:Ljdk/vm/ci/code/site/InfopointReason;
if_acmpne 18
10: aload 9
checkcast jdk.vm.ci.code.site.Call
astore 11
start local 11 11: aload 11
getfield jdk.vm.ci.code.site.Call.target:Ljdk/vm/ci/meta/InvokeTarget;
instanceof org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage
ifeq 18
12: aload 0
getfield jdk.tools.jaotc.CodeSectionProcessor.target:Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
instanceof jdk.vm.ci.amd64.AMD64
ifeq 18
13: aload 9
getfield jdk.vm.ci.code.site.Infopoint.pcOffset:I
aload 11
getfield jdk.vm.ci.code.site.Call.size:I
iadd
iconst_4
isub
istore 12
start local 12 14: aload 6
iload 12
iconst_0
iadd
iconst_0
bastore
15: aload 6
iload 12
iconst_1
iadd
iconst_0
bastore
16: aload 6
iload 12
iconst_2
iadd
iconst_0
bastore
17: aload 6
iload 12
iconst_3
iadd
iconst_0
bastore
end local 12 end local 11 end local 9 18: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
19: aload 8
invokeinterface jdk.tools.jaotc.JavaMethodInfo.getSymbolName:()Ljava/lang/String;
astore 9
start local 9 20: getstatic jdk.tools.jaotc.CodeSectionProcessor.$assertionsDisabled:Z
ifne 21
aload 9
ifnonnull 21
new java.lang.AssertionError
dup
ldc "missing name for compiled method"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
21: StackMap locals: jdk.tools.jaotc.CodeSectionProcessor jdk.tools.jaotc.AOTCompiledClass java.util.ArrayList jdk.tools.jaotc.CompiledMethodInfo java.util.Iterator org.graalvm.compiler.code.CompilationResult byte[] int jdk.tools.jaotc.JavaMethodInfo java.lang.String
StackMap stack:
aload 0
getfield jdk.tools.jaotc.CodeSectionProcessor.binaryContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getCodeContainer:()Ljdk/tools/jaotc/binformat/CodeContainer;
astore 10
start local 10 22: aload 10
aload 0
getfield jdk.tools.jaotc.CodeSectionProcessor.binaryContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getCodeSegmentSize:()I
invokestatic jdk.tools.jaotc.binformat.BinaryContainer.alignUp:(Ljdk/tools/jaotc/binformat/ByteContainer;I)I
istore 11
start local 11 23: aload 3
invokevirtual jdk.tools.jaotc.CompiledMethodInfo.setCodeId:()V
24: aload 0
getfield jdk.tools.jaotc.CodeSectionProcessor.binaryContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
aload 3
invokevirtual jdk.tools.jaotc.CompiledMethodInfo.getCodeId:()I
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.appendIntToCode:(I)V
25: aload 10
aload 0
getfield jdk.tools.jaotc.CodeSectionProcessor.binaryContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getCodeEntryAlignment:()I
invokestatic jdk.tools.jaotc.binformat.BinaryContainer.alignUp:(Ljdk/tools/jaotc/binformat/ByteContainer;I)I
istore 12
start local 12 26: aload 10
iload 12
getstatic jdk.tools.jaotc.binformat.Symbol$Kind.JAVA_FUNCTION:Ljdk/tools/jaotc/binformat/Symbol$Kind;
getstatic jdk.tools.jaotc.binformat.Symbol$Binding.LOCAL:Ljdk/tools/jaotc/binformat/Symbol$Binding;
iload 7
aload 9
invokevirtual jdk.tools.jaotc.binformat.CodeContainer.createSymbol:(ILjdk/tools/jaotc/binformat/Symbol$Kind;Ljdk/tools/jaotc/binformat/Symbol$Binding;ILjava/lang/String;)Ljdk/tools/jaotc/binformat/Symbol;
pop
27: aload 3
iload 12
invokevirtual jdk.tools.jaotc.CompiledMethodInfo.setTextSectionOffset:(I)V
28: aload 0
getfield jdk.tools.jaotc.CodeSectionProcessor.binaryContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
aload 6
iconst_0
iload 7
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.appendCodeBytes:([BII)V
29: aload 10
bipush 8
invokestatic jdk.tools.jaotc.binformat.BinaryContainer.alignUp:(Ljdk/tools/jaotc/binformat/ByteContainer;I)I
istore 13
start local 13 30: aload 3
iload 13
iload 12
isub
invokevirtual jdk.tools.jaotc.CompiledMethodInfo.setStubsOffset:(I)V
31: aload 5
invokevirtual org.graalvm.compiler.code.CompilationResult.getInfopoints:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 15
goto 41
StackMap locals: jdk.tools.jaotc.CodeSectionProcessor jdk.tools.jaotc.AOTCompiledClass java.util.ArrayList jdk.tools.jaotc.CompiledMethodInfo java.util.Iterator org.graalvm.compiler.code.CompilationResult byte[] int jdk.tools.jaotc.JavaMethodInfo java.lang.String jdk.tools.jaotc.binformat.CodeContainer int int int top java.util.Iterator
StackMap stack:
32: aload 15
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.code.site.Infopoint
astore 14
start local 14 33: aload 14
getfield jdk.vm.ci.code.site.Infopoint.reason:Ljdk/vm/ci/code/site/InfopointReason;
getstatic jdk.vm.ci.code.site.InfopointReason.CALL:Ljdk/vm/ci/code/site/InfopointReason;
if_acmpne 41
34: aload 14
checkcast jdk.vm.ci.code.site.Call
astore 16
start local 16 35: aload 16
getfield jdk.vm.ci.code.site.Call.target:Ljdk/vm/ci/meta/InvokeTarget;
instanceof jdk.vm.ci.meta.ResolvedJavaMethod
ifeq 41
36: aload 16
getfield jdk.vm.ci.code.site.Call.target:Ljdk/vm/ci/meta/InvokeTarget;
checkcast jdk.vm.ci.meta.ResolvedJavaMethod
astore 17
start local 17 37: aload 0
aload 3
aload 16
invokestatic jdk.tools.jaotc.CallInfo.isVirtualCall:(Ljdk/tools/jaotc/CompiledMethodInfo;Ljdk/vm/ci/code/site/Call;)Z
invokevirtual jdk.tools.jaotc.CodeSectionProcessor.addCallStub:(Z)Ljdk/tools/jaotc/StubInformation;
astore 18
start local 18 38: new java.lang.StringBuilder
dup
aload 17
invokestatic jdk.tools.jaotc.JavaMethodInfo.uniqueMethodName:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".at."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 14
getfield jdk.vm.ci.code.site.Infopoint.pcOffset:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 19
start local 19 39: aload 3
aload 19
aload 18
invokevirtual jdk.tools.jaotc.CompiledMethodInfo.addStubCode:(Ljava/lang/String;Ljdk/tools/jaotc/StubInformation;)V
40: iload 13
aload 18
invokevirtual jdk.tools.jaotc.StubInformation.getSize:()I
iadd
istore 13
end local 19 end local 18 end local 17 end local 16 end local 14 41: StackMap locals:
StackMap stack:
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifne 32
42: getstatic jdk.tools.jaotc.CodeSectionProcessor.$assertionsDisabled:Z
ifne 43
iload 13
aload 10
invokevirtual jdk.tools.jaotc.binformat.CodeContainer.getByteStreamSize:()I
if_icmpeq 43
new java.lang.AssertionError
dup
ldc "wrong offset"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
43: StackMap locals: jdk.tools.jaotc.CodeSectionProcessor jdk.tools.jaotc.AOTCompiledClass java.util.ArrayList jdk.tools.jaotc.CompiledMethodInfo java.util.Iterator org.graalvm.compiler.code.CompilationResult byte[] int jdk.tools.jaotc.JavaMethodInfo java.lang.String jdk.tools.jaotc.binformat.CodeContainer int int int
StackMap stack:
aload 0
getfield jdk.tools.jaotc.CodeSectionProcessor.binaryContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
iload 11
iload 13
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.addCodeSegments:(II)V
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 3 44: StackMap locals: jdk.tools.jaotc.CodeSectionProcessor jdk.tools.jaotc.AOTCompiledClass java.util.ArrayList top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
45: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Ljdk/tools/jaotc/CodeSectionProcessor;
0 46 1 compClass Ljdk/tools/jaotc/AOTCompiledClass;
1 46 2 compiledMethods Ljava/util/ArrayList<Ljdk/tools/jaotc/CompiledMethodInfo;>;
3 44 3 methodInfo Ljdk/tools/jaotc/CompiledMethodInfo;
4 44 5 compResult Lorg/graalvm/compiler/code/CompilationResult;
5 44 6 targetCode [B
6 44 7 targetCodeSize I
7 44 8 compMethod Ljdk/tools/jaotc/JavaMethodInfo;
9 18 9 infopoint Ljdk/vm/ci/code/site/Infopoint;
11 18 11 callInfopoint Ljdk/vm/ci/code/site/Call;
14 18 12 destOffset I
20 44 9 entry Ljava/lang/String;
22 44 10 codeSection Ljdk/tools/jaotc/binformat/CodeContainer;
23 44 11 codeIdOffset I
26 44 12 textBaseOffset I
30 44 13 currentStubOffset I
33 41 14 infopoint Ljdk/vm/ci/code/site/Infopoint;
35 41 16 callInfopoint Ljdk/vm/ci/code/site/Call;
37 41 17 call Ljdk/vm/ci/meta/ResolvedJavaMethod;
38 41 18 stub Ljdk/tools/jaotc/StubInformation;
39 41 19 targetSymbol Ljava/lang/String;
MethodParameters:
Name Flags
compClass
private jdk.tools.jaotc.StubInformation addCallStub(boolean);
descriptor: (Z)Ljdk/tools/jaotc/StubInformation;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.tools.jaotc.CodeSectionProcessor.binaryContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.getCodeContainer:()Ljdk/tools/jaotc/binformat/CodeContainer;
invokevirtual jdk.tools.jaotc.binformat.CodeContainer.getByteStreamSize:()I
istore 2
start local 2 1: new jdk.tools.jaotc.StubInformation
dup
iload 2
iload 1
invokespecial jdk.tools.jaotc.StubInformation.<init>:(IZ)V
astore 3
start local 3 2: aload 0
getfield jdk.tools.jaotc.CodeSectionProcessor.target:Ljdk/vm/ci/code/TargetDescription;
aload 0
getfield jdk.tools.jaotc.CodeSectionProcessor.optionValues:Lorg/graalvm/compiler/options/OptionValues;
invokestatic jdk.tools.jaotc.ELFMacroAssembler.getELFMacroAssembler:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/options/OptionValues;)Ljdk/tools/jaotc/ELFMacroAssembler;
astore 4
start local 4 3: iload 1
ifeq 6
4: aload 4
aload 3
invokeinterface jdk.tools.jaotc.ELFMacroAssembler.getPLTVirtualEntryCode:(Ljdk/tools/jaotc/StubInformation;)[B
astore 5
start local 5 5: goto 7
end local 5 6: StackMap locals: int jdk.tools.jaotc.StubInformation jdk.tools.jaotc.ELFMacroAssembler
StackMap stack:
aload 4
aload 3
invokeinterface jdk.tools.jaotc.ELFMacroAssembler.getPLTStaticEntryCode:(Ljdk/tools/jaotc/StubInformation;)[B
astore 5
start local 5 7: StackMap locals: byte[]
StackMap stack:
aload 0
getfield jdk.tools.jaotc.CodeSectionProcessor.binaryContainer:Ljdk/tools/jaotc/binformat/BinaryContainer;
aload 5
iconst_0
aload 5
arraylength
invokevirtual jdk.tools.jaotc.binformat.BinaryContainer.appendCodeBytes:([BII)V
8: aload 3
areturn
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 9 0 this Ljdk/tools/jaotc/CodeSectionProcessor;
0 9 1 isVirtualCall Z
1 9 2 startOffset I
2 9 3 stub Ljdk/tools/jaotc/StubInformation;
3 9 4 masm Ljdk/tools/jaotc/ELFMacroAssembler;
5 6 5 code [B
7 9 5 code [B
MethodParameters:
Name Flags
isVirtualCall
}
SourceFile: "CodeSectionProcessor.java"
InnerClasses:
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