public abstract class org.graalvm.compiler.core.amd64.AMD64MoveFactory extends org.graalvm.compiler.core.amd64.AMD64MoveFactoryBase
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.graalvm.compiler.core.amd64.AMD64MoveFactory
super_class: org.graalvm.compiler.core.amd64.AMD64MoveFactoryBase
{
private static volatile int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public void <init>(org.graalvm.compiler.core.amd64.AMD64MoveFactoryBase$BackupSlotProvider);
descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64MoveFactoryBase$BackupSlotProvider;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.graalvm.compiler.core.amd64.AMD64MoveFactoryBase.<init>:(Lorg/graalvm/compiler/core/amd64/AMD64MoveFactoryBase$BackupSlotProvider;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/core/amd64/AMD64MoveFactory;
0 2 1 backupSlotProvider Lorg/graalvm/compiler/core/amd64/AMD64MoveFactoryBase$BackupSlotProvider;
MethodParameters:
Name Flags
backupSlotProvider
public boolean canInlineConstant(jdk.vm.ci.meta.Constant);
descriptor: (Ljdk/vm/ci/meta/Constant;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof jdk.vm.ci.meta.JavaConstant
ifeq 6
1: aload 1
checkcast jdk.vm.ci.meta.JavaConstant
astore 2
start local 2 2: invokestatic org.graalvm.compiler.core.amd64.AMD64MoveFactory.$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 { // 7 - 9
7: 3
8: 5
9: 4
default: 5
}
3: StackMap locals: jdk.vm.ci.meta.JavaConstant
StackMap stack:
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
invokestatic org.graalvm.compiler.core.common.NumUtil.isInt:(J)Z
ireturn
4: StackMap locals:
StackMap stack:
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.isNull:()Z
ireturn
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/core/amd64/AMD64MoveFactory;
0 7 1 con Ljdk/vm/ci/meta/Constant;
2 6 2 c Ljdk/vm/ci/meta/JavaConstant;
MethodParameters:
Name Flags
con
public boolean allowConstantToStackMove(jdk.vm.ci.meta.Constant);
descriptor: (Ljdk/vm/ci/meta/Constant;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.graalvm.compiler.core.common.type.DataPointerConstant
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.vm.ci.meta.JavaConstant
ifeq 4
aload 1
checkcast jdk.vm.ci.meta.JavaConstant
invokestatic org.graalvm.compiler.lir.amd64.AMD64Move.canMoveConst2Stack:(Ljdk/vm/ci/meta/JavaConstant;)Z
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/core/amd64/AMD64MoveFactory;
0 5 1 constant Ljdk/vm/ci/meta/Constant;
MethodParameters:
Name Flags
constant
public org.graalvm.compiler.lir.amd64.AMD64LIRInstruction createMove(jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/amd64/AMD64LIRInstruction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof org.graalvm.compiler.lir.amd64.AMD64AddressValue
ifeq 2
1: new org.graalvm.compiler.lir.amd64.AMD64Move$LeaOp
dup
aload 1
aload 2
checkcast org.graalvm.compiler.lir.amd64.AMD64AddressValue
getstatic org.graalvm.compiler.asm.amd64.AMD64BaseAssembler$OperandSize.QWORD:Lorg/graalvm/compiler/asm/amd64/AMD64BaseAssembler$OperandSize;
invokespecial org.graalvm.compiler.lir.amd64.AMD64Move$LeaOp.<init>:(Ljdk/vm/ci/meta/AllocatableValue;Lorg/graalvm/compiler/lir/amd64/AMD64AddressValue;Lorg/graalvm/compiler/asm/amd64/AMD64BaseAssembler$OperandSize;)V
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isConstantValue:(Ljdk/vm/ci/meta/Value;)Z
ifeq 4
3: aload 0
aload 1
aload 2
invokestatic org.graalvm.compiler.lir.LIRValueUtil.asConstant:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Constant;
invokevirtual org.graalvm.compiler.core.amd64.AMD64MoveFactory.createLoad:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Constant;)Lorg/graalvm/compiler/lir/amd64/AMD64LIRInstruction;
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
ifne 5
aload 1
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
ifeq 6
5: StackMap locals:
StackMap stack:
new org.graalvm.compiler.lir.amd64.AMD64Move$MoveFromRegOp
dup
aload 1
invokevirtual jdk.vm.ci.meta.AllocatableValue.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
checkcast jdk.vm.ci.amd64.AMD64Kind
aload 1
aload 2
checkcast jdk.vm.ci.meta.AllocatableValue
invokespecial org.graalvm.compiler.lir.amd64.AMD64Move$MoveFromRegOp.<init>:(Ljdk/vm/ci/amd64/AMD64Kind;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;)V
areturn
6: StackMap locals:
StackMap stack:
new org.graalvm.compiler.lir.amd64.AMD64Move$MoveToRegOp
dup
aload 1
invokevirtual jdk.vm.ci.meta.AllocatableValue.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
checkcast jdk.vm.ci.amd64.AMD64Kind
aload 1
aload 2
checkcast jdk.vm.ci.meta.AllocatableValue
invokespecial org.graalvm.compiler.lir.amd64.AMD64Move$MoveToRegOp.<init>:(Ljdk/vm/ci/amd64/AMD64Kind;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/core/amd64/AMD64MoveFactory;
0 7 1 dst Ljdk/vm/ci/meta/AllocatableValue;
0 7 2 src Ljdk/vm/ci/meta/Value;
MethodParameters:
Name Flags
dst
src
public org.graalvm.compiler.lir.amd64.AMD64LIRInstruction createStackMove(jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.code.Register, jdk.vm.ci.meta.AllocatableValue);
descriptor: (Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/amd64/AMD64LIRInstruction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new org.graalvm.compiler.lir.amd64.AMD64Move$AMD64StackMove
dup
aload 1
aload 2
aload 3
aload 4
invokespecial org.graalvm.compiler.lir.amd64.AMD64Move$AMD64StackMove.<init>:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/AllocatableValue;)V
areturn
end local 4 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/core/amd64/AMD64MoveFactory;
0 1 1 result Ljdk/vm/ci/meta/AllocatableValue;
0 1 2 input Ljdk/vm/ci/meta/AllocatableValue;
0 1 3 scratchRegister Ljdk/vm/ci/code/Register;
0 1 4 backupSlot Ljdk/vm/ci/meta/AllocatableValue;
MethodParameters:
Name Flags
result
input
scratchRegister
backupSlot
public org.graalvm.compiler.lir.amd64.AMD64LIRInstruction createLoad(jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.meta.Constant);
descriptor: (Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Constant;)Lorg/graalvm/compiler/lir/amd64/AMD64LIRInstruction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof jdk.vm.ci.meta.JavaConstant
ifeq 2
1: new org.graalvm.compiler.lir.amd64.AMD64Move$MoveFromConstOp
dup
aload 1
aload 2
checkcast jdk.vm.ci.meta.JavaConstant
invokespecial org.graalvm.compiler.lir.amd64.AMD64Move$MoveFromConstOp.<init>:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/JavaConstant;)V
areturn
2: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.core.common.type.DataPointerConstant
ifeq 4
3: new org.graalvm.compiler.lir.amd64.AMD64Move$LeaDataOp
dup
aload 1
aload 2
checkcast org.graalvm.compiler.core.common.type.DataPointerConstant
invokespecial org.graalvm.compiler.lir.amd64.AMD64Move$LeaDataOp.<init>:(Ljdk/vm/ci/meta/AllocatableValue;Lorg/graalvm/compiler/core/common/type/DataPointerConstant;)V
areturn
4: StackMap locals:
StackMap stack:
ldc "unsupported constant: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/core/amd64/AMD64MoveFactory;
0 5 1 dst Ljdk/vm/ci/meta/AllocatableValue;
0 5 2 src Ljdk/vm/ci/meta/Constant;
MethodParameters:
Name Flags
dst
src
public org.graalvm.compiler.lir.LIRInstruction createStackLoad(jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.meta.Constant);
descriptor: (Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Constant;)Lorg/graalvm/compiler/lir/LIRInstruction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof jdk.vm.ci.meta.JavaConstant
ifeq 2
1: new org.graalvm.compiler.lir.amd64.AMD64Move$MoveFromConstOp
dup
aload 1
aload 2
checkcast jdk.vm.ci.meta.JavaConstant
invokespecial org.graalvm.compiler.lir.amd64.AMD64Move$MoveFromConstOp.<init>:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/JavaConstant;)V
areturn
2: StackMap locals:
StackMap stack:
ldc "unsupported constant for stack load: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/core/amd64/AMD64MoveFactory;
0 3 1 result Ljdk/vm/ci/meta/AllocatableValue;
0 3 2 input Ljdk/vm/ci/meta/Constant;
MethodParameters:
Name Flags
result
input
public org.graalvm.compiler.lir.LIRInstruction createMove(jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/LIRInstruction;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.core.amd64.AMD64MoveFactory.createMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/amd64/AMD64LIRInstruction;
areturn
LocalVariableTable:
Start End Slot Name Signature
public org.graalvm.compiler.lir.LIRInstruction createLoad(jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.meta.Constant);
descriptor: (Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Constant;)Lorg/graalvm/compiler/lir/LIRInstruction;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.core.amd64.AMD64MoveFactory.createLoad:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Constant;)Lorg/graalvm/compiler/lir/amd64/AMD64LIRInstruction;
areturn
LocalVariableTable:
Start End Slot Name Signature
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.core.amd64.AMD64MoveFactory.$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.core.amd64.AMD64MoveFactory.$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: "AMD64MoveFactory.java"
InnerClasses:
public OperandSize = org.graalvm.compiler.asm.amd64.AMD64BaseAssembler$OperandSize of org.graalvm.compiler.asm.amd64.AMD64BaseAssembler
public final BackupSlotProvider = org.graalvm.compiler.core.amd64.AMD64MoveFactoryBase$BackupSlotProvider of org.graalvm.compiler.core.amd64.AMD64MoveFactoryBase
public final AMD64StackMove = org.graalvm.compiler.lir.amd64.AMD64Move$AMD64StackMove of org.graalvm.compiler.lir.amd64.AMD64Move
public final LeaDataOp = org.graalvm.compiler.lir.amd64.AMD64Move$LeaDataOp of org.graalvm.compiler.lir.amd64.AMD64Move
public final LeaOp = org.graalvm.compiler.lir.amd64.AMD64Move$LeaOp of org.graalvm.compiler.lir.amd64.AMD64Move
public MoveFromConstOp = org.graalvm.compiler.lir.amd64.AMD64Move$MoveFromConstOp of org.graalvm.compiler.lir.amd64.AMD64Move
public final MoveFromRegOp = org.graalvm.compiler.lir.amd64.AMD64Move$MoveFromRegOp of org.graalvm.compiler.lir.amd64.AMD64Move
public final MoveToRegOp = org.graalvm.compiler.lir.amd64.AMD64Move$MoveToRegOp of org.graalvm.compiler.lir.amd64.AMD64Move