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 // org.graalvm.compiler.core.amd64.AMD64MoveFactory this
        start local 1 // org.graalvm.compiler.core.amd64.AMD64MoveFactoryBase$BackupSlotProvider backupSlotProvider
         0: .line 53
            aload 0 /* this */
            aload 1 /* backupSlotProvider */
            invokespecial org.graalvm.compiler.core.amd64.AMD64MoveFactoryBase.<init>:(Lorg/graalvm/compiler/core/amd64/AMD64MoveFactoryBase$BackupSlotProvider;)V
         1: .line 54
            return
        end local 1 // org.graalvm.compiler.core.amd64.AMD64MoveFactoryBase$BackupSlotProvider backupSlotProvider
        end local 0 // org.graalvm.compiler.core.amd64.AMD64MoveFactory this
      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.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.amd64.AMD64MoveFactory this
        start local 1 // jdk.vm.ci.meta.JavaConstant c
         0: .line 58
            invokestatic org.graalvm.compiler.core.amd64.AMD64MoveFactory.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 1 /* c */
            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: 1
                    8: 3
                    9: 2
              default: 3
          }
         1: .line 60
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            invokestatic org.graalvm.compiler.asm.NumUtil.isInt:(J)Z
            ireturn
         2: .line 62
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            invokeinterface jdk.vm.ci.meta.JavaConstant.isNull:()Z
            ireturn
         3: .line 64
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // jdk.vm.ci.meta.JavaConstant c
        end local 0 // org.graalvm.compiler.core.amd64.AMD64MoveFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/amd64/AMD64MoveFactory;
            0    4     1     c  Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
      Name  Flags
      c     

  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 // org.graalvm.compiler.core.amd64.AMD64MoveFactory this
        start local 1 // jdk.vm.ci.meta.AllocatableValue dst
        start local 2 // jdk.vm.ci.meta.Value src
         0: .line 70
            aload 2 /* src */
            instanceof org.graalvm.compiler.lir.amd64.AMD64AddressValue
            ifeq 2
         1: .line 71
            new org.graalvm.compiler.lir.amd64.AMD64Move$LeaOp
            dup
            aload 1 /* dst */
            aload 2 /* src */
            checkcast org.graalvm.compiler.lir.amd64.AMD64AddressValue
            invokespecial org.graalvm.compiler.lir.amd64.AMD64Move$LeaOp.<init>:(Ljdk/vm/ci/meta/AllocatableValue;Lorg/graalvm/compiler/lir/amd64/AMD64AddressValue;)V
            areturn
         2: .line 72
      StackMap locals:
      StackMap stack:
            aload 2 /* src */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isConstantValue:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 4
         3: .line 73
            aload 0 /* this */
            aload 1 /* dst */
            aload 2 /* src */
            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: .line 74
      StackMap locals:
      StackMap stack:
            aload 2 /* src */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifne 5
            aload 1 /* dst */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 6
         5: .line 75
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.lir.amd64.AMD64Move$MoveFromRegOp
            dup
            aload 1 /* dst */
            invokevirtual jdk.vm.ci.meta.AllocatableValue.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
            checkcast jdk.vm.ci.amd64.AMD64Kind
            aload 1 /* dst */
            aload 2 /* src */
            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: .line 77
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.lir.amd64.AMD64Move$MoveToRegOp
            dup
            aload 1 /* dst */
            invokevirtual jdk.vm.ci.meta.AllocatableValue.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
            checkcast jdk.vm.ci.amd64.AMD64Kind
            aload 1 /* dst */
            aload 2 /* src */
            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 // jdk.vm.ci.meta.Value src
        end local 1 // jdk.vm.ci.meta.AllocatableValue dst
        end local 0 // org.graalvm.compiler.core.amd64.AMD64MoveFactory this
      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 // org.graalvm.compiler.core.amd64.AMD64MoveFactory this
        start local 1 // jdk.vm.ci.meta.AllocatableValue result
        start local 2 // jdk.vm.ci.meta.AllocatableValue input
        start local 3 // jdk.vm.ci.code.Register scratchRegister
        start local 4 // jdk.vm.ci.meta.AllocatableValue backupSlot
         0: .line 83
            new org.graalvm.compiler.lir.amd64.AMD64Move$AMD64StackMove
            dup
            aload 1 /* result */
            aload 2 /* input */
            aload 3 /* scratchRegister */
            aload 4 /* backupSlot */
            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 // jdk.vm.ci.meta.AllocatableValue backupSlot
        end local 3 // jdk.vm.ci.code.Register scratchRegister
        end local 2 // jdk.vm.ci.meta.AllocatableValue input
        end local 1 // jdk.vm.ci.meta.AllocatableValue result
        end local 0 // org.graalvm.compiler.core.amd64.AMD64MoveFactory this
      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 // org.graalvm.compiler.core.amd64.AMD64MoveFactory this
        start local 1 // jdk.vm.ci.meta.AllocatableValue dst
        start local 2 // jdk.vm.ci.meta.Constant src
         0: .line 88
            aload 2 /* src */
            instanceof jdk.vm.ci.meta.JavaConstant
            ifeq 2
         1: .line 89
            new org.graalvm.compiler.lir.amd64.AMD64Move$MoveFromConstOp
            dup
            aload 1 /* dst */
            aload 2 /* src */
            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: .line 90
      StackMap locals:
      StackMap stack:
            aload 2 /* src */
            instanceof org.graalvm.compiler.core.common.type.DataPointerConstant
            ifeq 4
         3: .line 91
            new org.graalvm.compiler.lir.amd64.AMD64Move$LeaDataOp
            dup
            aload 1 /* dst */
            aload 2 /* src */
            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: .line 93
      StackMap locals:
      StackMap stack:
            ldc "unsupported constant: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* src */
            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 // jdk.vm.ci.meta.Constant src
        end local 1 // jdk.vm.ci.meta.AllocatableValue dst
        end local 0 // org.graalvm.compiler.core.amd64.AMD64MoveFactory this
      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 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: .line 1
            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: .line 1
            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: .line 50
            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 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