public class org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure extends org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure
super_class: org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure
{
protected final jdk.vm.ci.code.Register keyRegister;
descriptor: Ljdk/vm/ci/code/Register;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.graalvm.compiler.lir.asm.CompilationResultBuilder crb;
descriptor: Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.graalvm.compiler.asm.amd64.AMD64MacroAssembler masm;
descriptor: Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
final org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp this$1;
descriptor: Lorg/graalvm/compiler/lir/amd64/AMD64ControlFlow$StrategySwitchOp;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/lir/amd64/AMD64ControlFlow;
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 org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp, jdk.vm.ci.code.Register, org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler);
descriptor: (Lorg/graalvm/compiler/lir/amd64/AMD64ControlFlow$StrategySwitchOp;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=5
start local 0 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.this$1:Lorg/graalvm/compiler/lir/amd64/AMD64ControlFlow$StrategySwitchOp;
1: aload 0
aload 3
aload 4
aload 1
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp.keyTargets:[Lorg/graalvm/compiler/lir/LabelRef;
aload 1
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp.defaultTarget:Lorg/graalvm/compiler/lir/LabelRef;
invokespecial org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.<init>:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/Assembler;[Lorg/graalvm/compiler/lir/LabelRef;Lorg/graalvm/compiler/lir/LabelRef;)V
2: aload 0
aload 2
putfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.keyRegister:Ljdk/vm/ci/code/Register;
3: aload 0
aload 3
putfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.crb:Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
4: aload 0
aload 4
putfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.masm:Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
5: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ControlFlow$StrategySwitchOp$SwitchClosure;
0 6 2 keyRegister Ljdk/vm/ci/code/Register;
0 6 3 crb Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
0 6 4 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
MethodParameters:
Name Flags
this$0 final
keyRegister
crb
masm
protected void emitComparison(jdk.vm.ci.meta.Constant);
descriptor: (Ljdk/vm/ci/meta/Constant;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
checkcast jdk.vm.ci.meta.JavaConstant
astore 2
start local 2 1: invokestatic org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iaload
tableswitch { // 5 - 9
5: 2
6: 11
7: 6
8: 11
9: 8
default: 11
}
2: StackMap locals: jdk.vm.ci.meta.JavaConstant
StackMap stack:
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lstore 3
start local 3 3: getstatic org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.$assertionsDisabled:Z
ifne 4
lload 3
invokestatic org.graalvm.compiler.core.common.NumUtil.isInt:(J)Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: long
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.masm:Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.keyRegister:Ljdk/vm/ci/code/Register;
lload 3
l2i
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpl:(Ljdk/vm/ci/code/Register;I)V
5: goto 12
end local 3 6: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.masm:Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.keyRegister:Ljdk/vm/ci/code/Register;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.crb:Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
aload 2
invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.asLongConstRef:(Ljdk/vm/ci/meta/JavaConstant;)Lorg/graalvm/compiler/asm/AbstractAddress;
checkcast org.graalvm.compiler.asm.amd64.AMD64Address
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
7: goto 12
8: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.crb:Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.masm:Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.this$1:Lorg/graalvm/compiler/lir/amd64/AMD64ControlFlow$StrategySwitchOp;
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp.scratch:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
aload 2
getstatic jdk.vm.ci.amd64.AMD64Kind.QWORD:Ljdk/vm/ci/amd64/AMD64Kind;
invokestatic org.graalvm.compiler.lir.amd64.AMD64Move.const2reg:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/amd64/AMD64Kind;)V
9: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.masm:Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.keyRegister:Ljdk/vm/ci/code/Register;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.this$1:Lorg/graalvm/compiler/lir/amd64/AMD64ControlFlow$StrategySwitchOp;
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp.scratch:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpptr:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
10: goto 12
11: StackMap locals:
StackMap stack:
new org.graalvm.compiler.debug.GraalError
dup
ldc "switch only supported for int, long and object"
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ControlFlow$StrategySwitchOp$SwitchClosure;
0 13 1 c Ljdk/vm/ci/meta/Constant;
1 13 2 jc Ljdk/vm/ci/meta/JavaConstant;
3 6 3 lc J
MethodParameters:
Name Flags
c
protected void conditionalJump(int, org.graalvm.compiler.core.common.calc.Condition, org.graalvm.compiler.asm.Label);
descriptor: (ILorg/graalvm/compiler/core/common/calc/Condition;Lorg/graalvm/compiler/asm/Label;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.this$1:Lorg/graalvm/compiler/lir/amd64/AMD64ControlFlow$StrategySwitchOp;
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp.keyConstants:[Ljdk/vm/ci/meta/Constant;
iload 1
aaload
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.emitComparison:(Ljdk/vm/ci/meta/Constant;)V
1: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.masm:Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
aload 2
invokestatic org.graalvm.compiler.lir.amd64.AMD64ControlFlow.intCond:(Lorg/graalvm/compiler/core/common/calc/Condition;)Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ControlFlow$StrategySwitchOp$SwitchClosure;
0 3 1 index I
0 3 2 condition Lorg/graalvm/compiler/core/common/calc/Condition;
0 3 3 target Lorg/graalvm/compiler/asm/Label;
MethodParameters:
Name Flags
index
condition
target
static int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.vm.ci.meta.JavaKind.values:()[Ljdk/vm/ci/meta/JavaKind;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.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.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 8
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 6
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 11
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.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.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 7
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 9
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_3
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 10
iastore
33: goto 35
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
34: pop
StackMap locals:
StackMap stack:
35: aload 0
dup
putstatic org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[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
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
32 33 34 Class java.lang.NoSuchFieldError
}
SourceFile: "AMD64ControlFlow.java"
NestHost: org.graalvm.compiler.lir.amd64.AMD64ControlFlow
InnerClasses:
public final ConditionFlag = org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag of org.graalvm.compiler.asm.amd64.AMD64Assembler
public abstract BaseSwitchClosure = org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure of org.graalvm.compiler.lir.SwitchStrategy
public StrategySwitchOp = org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp of org.graalvm.compiler.lir.amd64.AMD64ControlFlow
public SwitchClosure = org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp$SwitchClosure of org.graalvm.compiler.lir.amd64.AMD64ControlFlow$StrategySwitchOp