public class org.graalvm.compiler.bytecode.BytecodeDisassembler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.bytecode.BytecodeDisassembler
super_class: java.lang.Object
{
private final boolean multiline;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean newLine;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(boolean, boolean);
descriptor: (ZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, 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
iload 1
putfield org.graalvm.compiler.bytecode.BytecodeDisassembler.multiline:Z
2: aload 0
iload 2
putfield org.graalvm.compiler.bytecode.BytecodeDisassembler.newLine:Z
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/bytecode/BytecodeDisassembler;
0 4 1 multiline Z
0 4 2 newLine Z
MethodParameters:
Name Flags
multiline
newLine
public void <init>(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_1
invokespecial org.graalvm.compiler.bytecode.BytecodeDisassembler.<init>:(ZZ)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/bytecode/BytecodeDisassembler;
0 2 1 multiline Z
MethodParameters:
Name Flags
multiline
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
iconst_1
invokespecial org.graalvm.compiler.bytecode.BytecodeDisassembler.<init>:(ZZ)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/bytecode/BytecodeDisassembler;
public static java.lang.String disassembleOne(jdk.vm.ci.meta.ResolvedJavaMethod, int);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;I)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new org.graalvm.compiler.bytecode.BytecodeDisassembler
dup
iconst_0
iconst_0
invokespecial org.graalvm.compiler.bytecode.BytecodeDisassembler.<init>:(ZZ)V
aload 0
iload 1
iload 1
invokevirtual org.graalvm.compiler.bytecode.BytecodeDisassembler.disassemble:(Ljdk/vm/ci/meta/ResolvedJavaMethod;II)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 1 1 bci I
MethodParameters:
Name Flags
method
bci
public java.lang.String disassemble(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
ldc 2147483647
invokevirtual org.graalvm.compiler.bytecode.BytecodeDisassembler.disassemble:(Ljdk/vm/ci/meta/ResolvedJavaMethod;II)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/bytecode/BytecodeDisassembler;
0 1 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
method
public java.lang.String disassemble(jdk.vm.ci.meta.ResolvedJavaMethod, int, int);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;II)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
new org.graalvm.compiler.bytecode.ResolvedJavaMethodBytecode
dup
aload 1
invokespecial org.graalvm.compiler.bytecode.ResolvedJavaMethodBytecode.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
iload 2
iload 3
invokevirtual org.graalvm.compiler.bytecode.BytecodeDisassembler.disassemble:(Lorg/graalvm/compiler/bytecode/Bytecode;II)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/bytecode/BytecodeDisassembler;
0 1 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 1 2 startBci I
0 1 3 endBci I
MethodParameters:
Name Flags
method
startBci
endBci
public java.lang.String disassemble(org.graalvm.compiler.bytecode.Bytecode);
descriptor: (Lorg/graalvm/compiler/bytecode/Bytecode;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
ldc 2147483647
invokevirtual org.graalvm.compiler.bytecode.BytecodeDisassembler.disassemble:(Lorg/graalvm/compiler/bytecode/Bytecode;II)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/bytecode/BytecodeDisassembler;
0 1 1 code Lorg/graalvm/compiler/bytecode/Bytecode;
MethodParameters:
Name Flags
code
public java.lang.String disassemble(org.graalvm.compiler.bytecode.Bytecode, int, int);
descriptor: (Lorg/graalvm/compiler/bytecode/Bytecode;II)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getCode:()[B
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 4
start local 4 3: aload 1
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getConstantPool:()Ljdk/vm/ci/meta/ConstantPool;
astore 5
start local 5 4: new org.graalvm.compiler.bytecode.BytecodeStream
dup
aload 1
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getCode:()[B
invokespecial org.graalvm.compiler.bytecode.BytecodeStream.<init>:([B)V
astore 6
start local 6 5: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 7
start local 7 6: aload 6
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBC:()I
istore 8
start local 8 7: goto 18
8: StackMap locals: org.graalvm.compiler.bytecode.BytecodeDisassembler org.graalvm.compiler.bytecode.Bytecode int int jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ConstantPool org.graalvm.compiler.bytecode.BytecodeStream java.lang.StringBuilder int
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBCI:()I
istore 9
start local 9 9: iload 9
iload 2
if_icmplt 16
iload 9
iload 3
if_icmpgt 16
10: iload 8
invokestatic org.graalvm.compiler.bytecode.Bytecodes.nameOf:(I)Ljava/lang/String;
astore 10
start local 10 11: aload 7
ldc "%4d: %-14s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 9
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 10
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 6
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.nextBCI:()I
iload 9
iconst_1
iadd
if_icmple 14
13: aload 0
aload 7
aload 6
aload 5
aload 4
iload 9
iload 8
invokevirtual org.graalvm.compiler.bytecode.BytecodeDisassembler.decodeOperand:(Ljava/lang/StringBuilder;Lorg/graalvm/compiler/bytecode/BytecodeStream;Ljdk/vm/ci/meta/ConstantPool;Ljdk/vm/ci/meta/ResolvedJavaMethod;II)V
14: StackMap locals: int java.lang.String
StackMap stack:
aload 0
getfield org.graalvm.compiler.bytecode.BytecodeDisassembler.newLine:Z
ifeq 16
15: aload 7
ldc "%n"
iconst_0
anewarray java.lang.Object
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 10 16: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.next:()V
17: aload 6
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBC:()I
istore 8
end local 9 18: StackMap locals:
StackMap stack:
iload 8
sipush 256
if_icmpne 8
19: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 9
start local 9 21: new java.lang.RuntimeException
dup
ldc "Error disassembling %s%nPartial disassembly:%n%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_1
aload 7
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 9
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 9 22: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
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 23 0 this Lorg/graalvm/compiler/bytecode/BytecodeDisassembler;
0 23 1 code Lorg/graalvm/compiler/bytecode/Bytecode;
0 23 2 startBci I
0 23 3 endBci I
3 23 4 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
4 23 5 cp Ljdk/vm/ci/meta/ConstantPool;
5 23 6 stream Lorg/graalvm/compiler/bytecode/BytecodeStream;
6 23 7 buf Ljava/lang/StringBuilder;
7 23 8 opcode I
9 18 9 bci I
11 16 10 mnemonic Ljava/lang/String;
21 22 9 e Ljava/lang/Throwable;
Exception table:
from to target type
7 19 20 Class java.lang.Throwable
MethodParameters:
Name Flags
code
startBci
endBci
private void decodeOperand(java.lang.StringBuilder, org.graalvm.compiler.bytecode.BytecodeStream, jdk.vm.ci.meta.ConstantPool, jdk.vm.ci.meta.ResolvedJavaMethod, int, int);
descriptor: (Ljava/lang/StringBuilder;Lorg/graalvm/compiler/bytecode/BytecodeStream;Ljdk/vm/ci/meta/ConstantPool;Ljdk/vm/ci/meta/ResolvedJavaMethod;II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=11, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: iload 6
lookupswitch { // 53
16: 1
17: 2
18: 35
19: 35
20: 35
21: 47
22: 47
23: 47
24: 47
25: 47
54: 47
55: 47
56: 47
57: 47
58: 47
153: 49
154: 49
155: 49
156: 49
157: 49
158: 49
159: 49
160: 49
161: 49
162: 49
163: 49
164: 49
165: 49
166: 49
167: 49
168: 49
169: 47
170: 51
171: 51
178: 7
179: 7
180: 7
181: 7
182: 14
183: 14
184: 14
185: 21
186: 28
187: 3
188: 74
189: 3
192: 3
193: 3
197: 85
198: 49
199: 49
200: 49
201: 49
default: 88
}
1: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readByte:()B
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
goto 88
2: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readShort:()S
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
goto 88
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readCPI:()C
istore 7
start local 7 4: aload 3
iload 7
iload 6
invokeinterface jdk.vm.ci.meta.ConstantPool.lookupType:(II)Ljdk/vm/ci/meta/JavaType;
astore 8
start local 8 5: aload 1
ldc "#%-10d // %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 8
invokeinterface jdk.vm.ci.meta.JavaType.toJavaName:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: goto 88
end local 8 end local 7 7: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readCPI:()C
istore 7
start local 7 8: aload 3
iload 7
aload 4
iload 6
invokeinterface jdk.vm.ci.meta.ConstantPool.lookupField:(ILjdk/vm/ci/meta/ResolvedJavaMethod;I)Ljdk/vm/ci/meta/JavaField;
astore 8
start local 8 9: aload 8
invokeinterface jdk.vm.ci.meta.JavaField.getDeclaringClass:()Ljdk/vm/ci/meta/JavaType;
invokeinterface jdk.vm.ci.meta.JavaType.getName:()Ljava/lang/String;
aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
aload 8
ldc "%n:%T"
invokeinterface jdk.vm.ci.meta.JavaField.format:(Ljava/lang/String;)Ljava/lang/String;
goto 11
StackMap locals: int jdk.vm.ci.meta.JavaField
StackMap stack:
10: aload 8
ldc "%H.%n:%T"
invokeinterface jdk.vm.ci.meta.JavaField.format:(Ljava/lang/String;)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
11: astore 9
start local 9 12: aload 1
ldc "#%-10d // %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 9
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: goto 88
end local 9 end local 8 end local 7 14: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readCPI:()C
istore 7
start local 7 15: aload 3
iload 7
iload 6
invokeinterface jdk.vm.ci.meta.ConstantPool.lookupMethod:(II)Ljdk/vm/ci/meta/JavaMethod;
astore 8
start local 8 16: aload 8
invokeinterface jdk.vm.ci.meta.JavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/JavaType;
invokeinterface jdk.vm.ci.meta.JavaType.getName:()Ljava/lang/String;
aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
aload 8
ldc "%n:(%P)%R"
invokeinterface jdk.vm.ci.meta.JavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
goto 18
StackMap locals: int jdk.vm.ci.meta.JavaMethod
StackMap stack:
17: aload 8
ldc "%H.%n:(%P)%R"
invokeinterface jdk.vm.ci.meta.JavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
18: astore 9
start local 9 19: aload 1
ldc "#%-10d // %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 9
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
20: goto 88
end local 9 end local 8 end local 7 21: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readCPI:()C
istore 7
start local 7 22: aload 3
iload 7
iload 6
invokeinterface jdk.vm.ci.meta.ConstantPool.lookupMethod:(II)Ljdk/vm/ci/meta/JavaMethod;
astore 8
start local 8 23: aload 8
invokeinterface jdk.vm.ci.meta.JavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/JavaType;
invokeinterface jdk.vm.ci.meta.JavaType.getName:()Ljava/lang/String;
aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 24
aload 8
ldc "%n:(%P)%R"
invokeinterface jdk.vm.ci.meta.JavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
goto 25
StackMap locals: int jdk.vm.ci.meta.JavaMethod
StackMap stack:
24: aload 8
ldc "%H.%n:(%P)%R"
invokeinterface jdk.vm.ci.meta.JavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
25: astore 9
start local 9 26: aload 1
ldc "#%-10s // %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
new java.lang.StringBuilder
dup
iload 7
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
iload 5
iconst_3
iadd
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readUByte:(I)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
dup
iconst_1
aload 9
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
27: goto 88
end local 9 end local 8 end local 7 28: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readCPI4:()I
istore 7
start local 7 29: aload 3
iload 7
iload 6
invokeinterface jdk.vm.ci.meta.ConstantPool.lookupMethod:(II)Ljdk/vm/ci/meta/JavaMethod;
astore 8
start local 8 30: aload 8
invokeinterface jdk.vm.ci.meta.JavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/JavaType;
invokeinterface jdk.vm.ci.meta.JavaType.getName:()Ljava/lang/String;
aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 31
aload 8
ldc "%n:(%P)%R"
invokeinterface jdk.vm.ci.meta.JavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
goto 32
StackMap locals: int jdk.vm.ci.meta.JavaMethod
StackMap stack:
31: aload 8
ldc "%H.%n:(%P)%R"
invokeinterface jdk.vm.ci.meta.JavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
32: astore 9
start local 9 33: aload 1
ldc "#%-10d // %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 9
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
34: goto 88
end local 9 end local 8 end local 7 35: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readCPI:()C
istore 7
start local 7 36: aload 3
iload 7
invokeinterface jdk.vm.ci.meta.ConstantPool.lookupConstant:(I)Ljava/lang/Object;
astore 8
start local 8 37: aconst_null
astore 9
start local 9 38: aload 8
instanceof jdk.vm.ci.meta.JavaConstant
ifeq 42
39: aload 8
checkcast jdk.vm.ci.meta.JavaConstant
astore 10
start local 10 40: aload 10
invokeinterface jdk.vm.ci.meta.JavaConstant.toValueString:()Ljava/lang/String;
astore 9
end local 10 41: goto 43
42: StackMap locals: int java.lang.Object java.lang.String
StackMap stack:
aload 8
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
astore 9
43: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.bytecode.BytecodeDisassembler.multiline:Z
ifne 45
44: aload 9
ldc "\\n"
ldc ""
invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 9
45: StackMap locals:
StackMap stack:
aload 1
ldc "#%-10d // %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 9
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
46: goto 88
end local 9 end local 8 end local 7 47: StackMap locals:
StackMap stack:
aload 1
ldc "%d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readLocalIndex:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
48: goto 88
49: StackMap locals:
StackMap stack:
aload 1
ldc "%d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readBranchDest:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
50: goto 88
51: StackMap locals:
StackMap stack:
iload 6
sipush 171
if_icmpne 52
new org.graalvm.compiler.bytecode.BytecodeLookupSwitch
dup
aload 2
iload 5
invokespecial org.graalvm.compiler.bytecode.BytecodeLookupSwitch.<init>:(Lorg/graalvm/compiler/bytecode/BytecodeStream;I)V
goto 53
StackMap locals:
StackMap stack:
52: new org.graalvm.compiler.bytecode.BytecodeTableSwitch
dup
aload 2
iload 5
invokespecial org.graalvm.compiler.bytecode.BytecodeTableSwitch.<init>:(Lorg/graalvm/compiler/bytecode/BytecodeStream;I)V
StackMap locals:
StackMap stack: org.graalvm.compiler.bytecode.BytecodeSwitch
53: astore 7
start local 7 54: aload 0
getfield org.graalvm.compiler.bytecode.BytecodeDisassembler.multiline:Z
ifeq 64
55: aload 1
new java.lang.StringBuilder
dup
ldc "{ // "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.numberOfCases:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
56: iconst_0
istore 8
start local 8 57: goto 60
58: StackMap locals: org.graalvm.compiler.bytecode.BytecodeSwitch int
StackMap stack:
aload 1
ldc "%n %7d: %d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 7
iload 8
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.keyAt:(I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 7
iload 8
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.targetAt:(I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
59: iinc 8 1
StackMap locals:
StackMap stack:
60: iload 8
aload 7
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.numberOfCases:()I
if_icmplt 58
end local 8 61: aload 1
ldc "%n default: %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 7
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.defaultTarget:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
62: aload 1
ldc "%n }"
iconst_0
anewarray java.lang.Object
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
63: goto 88
64: StackMap locals:
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.numberOfCases:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] {"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
65: iconst_0
istore 8
start local 8 66: goto 71
67: StackMap locals: int
StackMap stack:
aload 1
ldc "%d: %d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 7
iload 8
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.keyAt:(I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 7
iload 8
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.targetAt:(I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
68: iload 8
aload 7
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.numberOfCases:()I
iconst_1
isub
if_icmpeq 70
69: aload 1
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
70: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
71: iload 8
aload 7
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.numberOfCases:()I
if_icmplt 67
end local 8 72: aload 1
ldc "} default: %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 7
invokevirtual org.graalvm.compiler.bytecode.BytecodeSwitch.defaultTarget:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
73: goto 88
end local 7 74: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readLocalIndex:()I
istore 7
start local 7 75: iload 7
tableswitch { // 4 - 11
4: 76
5: 77
6: 78
7: 79
8: 80
9: 81
10: 82
11: 83
default: 84
}
76: StackMap locals: int
StackMap stack:
aload 1
ldc "boolean"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 88
77: StackMap locals:
StackMap stack:
aload 1
ldc "char"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 88
78: StackMap locals:
StackMap stack:
aload 1
ldc "float"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 88
79: StackMap locals:
StackMap stack:
aload 1
ldc "double"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 88
80: StackMap locals:
StackMap stack:
aload 1
ldc "byte"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 88
81: StackMap locals:
StackMap stack:
aload 1
ldc "short"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 88
82: StackMap locals:
StackMap stack:
aload 1
ldc "int"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 88
83: StackMap locals:
StackMap stack:
aload 1
ldc "long"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
84: StackMap locals:
StackMap stack:
goto 88
end local 7 85: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readCPI:()C
istore 7
start local 7 86: aload 3
iload 7
iload 6
invokeinterface jdk.vm.ci.meta.ConstantPool.lookupType:(II)Ljdk/vm/ci/meta/JavaType;
astore 8
start local 8 87: aload 1
ldc "#%-10s // %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
new java.lang.StringBuilder
dup
iload 7
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
iload 5
iconst_3
iadd
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readUByte:(I)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
dup
iconst_1
aload 8
invokeinterface jdk.vm.ci.meta.JavaType.toJavaName:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 8 end local 7 88: StackMap locals:
StackMap stack:
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 89 0 this Lorg/graalvm/compiler/bytecode/BytecodeDisassembler;
0 89 1 buf Ljava/lang/StringBuilder;
0 89 2 stream Lorg/graalvm/compiler/bytecode/BytecodeStream;
0 89 3 cp Ljdk/vm/ci/meta/ConstantPool;
0 89 4 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 89 5 bci I
0 89 6 opcode I
4 7 7 cpi I
5 7 8 type Ljdk/vm/ci/meta/JavaType;
8 14 7 cpi I
9 14 8 field Ljdk/vm/ci/meta/JavaField;
12 14 9 fieldDesc Ljava/lang/String;
15 21 7 cpi I
16 21 8 callee Ljdk/vm/ci/meta/JavaMethod;
19 21 9 calleeDesc Ljava/lang/String;
22 28 7 cpi I
23 28 8 callee Ljdk/vm/ci/meta/JavaMethod;
26 28 9 calleeDesc Ljava/lang/String;
29 35 7 cpi I
30 35 8 callee Ljdk/vm/ci/meta/JavaMethod;
33 35 9 calleeDesc Ljava/lang/String;
36 47 7 cpi I
37 47 8 constant Ljava/lang/Object;
38 47 9 desc Ljava/lang/String;
40 41 10 c Ljdk/vm/ci/meta/JavaConstant;
54 74 7 bswitch Lorg/graalvm/compiler/bytecode/BytecodeSwitch;
57 61 8 i I
66 72 8 i I
75 85 7 typecode I
86 88 7 cpi I
87 88 8 type Ljdk/vm/ci/meta/JavaType;
MethodParameters:
Name Flags
buf
stream
cp
method
bci
opcode
public static jdk.vm.ci.meta.JavaMethod getInvokedMethodAt(jdk.vm.ci.meta.ResolvedJavaMethod, int);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;I)Ljdk/vm/ci/meta/JavaMethod;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getCode:()[B
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getConstantPool:()Ljdk/vm/ci/meta/ConstantPool;
astore 2
start local 2 3: new org.graalvm.compiler.bytecode.BytecodeStream
dup
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getCode:()[B
invokespecial org.graalvm.compiler.bytecode.BytecodeStream.<init>:([B)V
astore 3
start local 3 4: aload 3
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBC:()I
istore 4
start local 4 5: goto 22
6: StackMap locals: jdk.vm.ci.meta.ConstantPool org.graalvm.compiler.bytecode.BytecodeStream int
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBCI:()I
istore 5
start local 5 7: iload 5
iload 1
if_icmpne 20
8: aload 3
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.nextBCI:()I
iload 5
iconst_1
iadd
if_icmple 20
9: iload 4
tableswitch { // 182 - 186
182: 10
183: 10
184: 10
185: 13
186: 16
default: 19
}
10: StackMap locals: int
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readCPI:()C
istore 6
start local 6 11: aload 2
iload 6
iload 4
invokeinterface jdk.vm.ci.meta.ConstantPool.lookupMethod:(II)Ljdk/vm/ci/meta/JavaMethod;
astore 7
start local 7 12: aload 7
areturn
end local 7 end local 6 13: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readCPI:()C
istore 6
start local 6 14: aload 2
iload 6
iload 4
invokeinterface jdk.vm.ci.meta.ConstantPool.lookupMethod:(II)Ljdk/vm/ci/meta/JavaMethod;
astore 7
start local 7 15: aload 7
areturn
end local 7 end local 6 16: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readCPI4:()I
istore 6
start local 6 17: aload 2
iload 6
iload 4
invokeinterface jdk.vm.ci.meta.ConstantPool.lookupMethod:(II)Ljdk/vm/ci/meta/JavaMethod;
astore 7
start local 7 18: aload 7
areturn
end local 7 end local 6 19: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
aload 0
iload 1
invokestatic org.graalvm.compiler.bytecode.BytecodeDisassembler.disassembleOne:(Ljdk/vm/ci/meta/ResolvedJavaMethod;I)Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.next:()V
21: aload 3
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBC:()I
istore 4
end local 5 22: StackMap locals:
StackMap stack:
iload 4
sipush 256
if_icmpne 6
23: aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 24 1 invokeBci I
3 24 2 cp Ljdk/vm/ci/meta/ConstantPool;
4 24 3 stream Lorg/graalvm/compiler/bytecode/BytecodeStream;
5 24 4 opcode I
7 22 5 bci I
11 13 6 cpi I
12 13 7 callee Ljdk/vm/ci/meta/JavaMethod;
14 16 6 cpi I
15 16 7 callee Ljdk/vm/ci/meta/JavaMethod;
17 19 6 cpi I
18 19 7 callee Ljdk/vm/ci/meta/JavaMethod;
MethodParameters:
Name Flags
method
invokeBci
public static int getBytecodeAt(jdk.vm.ci.meta.ResolvedJavaMethod, int);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getCode:()[B
ifnonnull 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
new org.graalvm.compiler.bytecode.BytecodeStream
dup
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getCode:()[B
invokespecial org.graalvm.compiler.bytecode.BytecodeStream.<init>:([B)V
astore 2
start local 2 3: aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBC:()I
istore 3
start local 3 4: goto 10
5: StackMap locals: org.graalvm.compiler.bytecode.BytecodeStream int
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBCI:()I
istore 4
start local 4 6: iload 4
iload 1
if_icmpne 8
7: iload 3
ireturn
8: StackMap locals: int
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.next:()V
9: aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBC:()I
istore 3
end local 4 10: StackMap locals:
StackMap stack:
iload 3
sipush 256
if_icmpne 5
11: iconst_m1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 12 1 invokeBci I
3 12 2 stream Lorg/graalvm/compiler/bytecode/BytecodeStream;
4 12 3 opcode I
6 10 4 bci I
MethodParameters:
Name Flags
method
invokeBci
}
SourceFile: "BytecodeDisassembler.java"