public class jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig implements jdk.vm.ci.code.RegisterConfig
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig
  super_class: java.lang.Object
{
  private final jdk.vm.ci.code.TargetDescription target;
    descriptor: Ljdk/vm/ci/code/TargetDescription;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.code.RegisterArray allocatable;
    descriptor: Ljdk/vm/ci/code/RegisterArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.code.RegisterArray callerSaved;
    descriptor: Ljdk/vm/ci/code/RegisterArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean allAllocatableAreCallerSaved;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.code.RegisterAttributes[] attributesMap;
    descriptor: [Ljdk/vm/ci/code/RegisterAttributes;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.code.RegisterArray javaGeneralParameterRegisters;
    descriptor: Ljdk/vm/ci/code/RegisterArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.code.RegisterArray nativeGeneralParameterRegisters;
    descriptor: Ljdk/vm/ci/code/RegisterArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.code.RegisterArray simdParameterRegisters;
    descriptor: Ljdk/vm/ci/code/RegisterArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final jdk.vm.ci.code.Register inlineCacheRegister;
    descriptor: Ljdk/vm/ci/code/Register;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final jdk.vm.ci.code.Register metaspaceMethodRegister;
    descriptor: Ljdk/vm/ci/code/Register;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final jdk.vm.ci.code.Register heapBaseRegister;
    descriptor: Ljdk/vm/ci/code/Register;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final jdk.vm.ci.code.Register threadRegister;
    descriptor: Ljdk/vm/ci/code/Register;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final jdk.vm.ci.code.Register fp;
    descriptor: Ljdk/vm/ci/code/Register;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final jdk.vm.ci.code.RegisterArray reservedRegisters;
    descriptor: Ljdk/vm/ci/code/RegisterArray;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  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=6, locals=0, args_size=0
         0: .line 77
            ldc Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;
            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.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.$assertionsDisabled:Z
         3: .line 118
            getstatic jdk.vm.ci.aarch64.AArch64.rscratch2:Ljdk/vm/ci/code/Register;
            putstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.inlineCacheRegister:Ljdk/vm/ci/code/Register;
         4: .line 123
            getstatic jdk.vm.ci.aarch64.AArch64.r12:Ljdk/vm/ci/code/Register;
            putstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.metaspaceMethodRegister:Ljdk/vm/ci/code/Register;
         5: .line 125
            getstatic jdk.vm.ci.aarch64.AArch64.r27:Ljdk/vm/ci/code/Register;
            putstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.heapBaseRegister:Ljdk/vm/ci/code/Register;
         6: .line 126
            getstatic jdk.vm.ci.aarch64.AArch64.r28:Ljdk/vm/ci/code/Register;
            putstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.threadRegister:Ljdk/vm/ci/code/Register;
         7: .line 127
            getstatic jdk.vm.ci.aarch64.AArch64.r29:Ljdk/vm/ci/code/Register;
            putstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.fp:Ljdk/vm/ci/code/Register;
         8: .line 129
            new jdk.vm.ci.code.RegisterArray
            dup
            bipush 8
            anewarray jdk.vm.ci.code.Register
            dup
            iconst_0
            getstatic jdk.vm.ci.aarch64.AArch64.rscratch1:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_1
            getstatic jdk.vm.ci.aarch64.AArch64.rscratch2:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_2
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.threadRegister:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_3
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.fp:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_4
            getstatic jdk.vm.ci.aarch64.AArch64.lr:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_5
            getstatic jdk.vm.ci.aarch64.AArch64.r31:Ljdk/vm/ci/code/Register;
            aastore
            dup
            bipush 6
            getstatic jdk.vm.ci.aarch64.AArch64.zr:Ljdk/vm/ci/code/Register;
            aastore
            dup
            bipush 7
            getstatic jdk.vm.ci.aarch64.AArch64.sp:Ljdk/vm/ci/code/Register;
            aastore
            invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
            putstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.reservedRegisters:Ljdk/vm/ci/code/RegisterArray;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public jdk.vm.ci.code.RegisterArray getAllocatableRegisters();
    descriptor: ()Ljdk/vm/ci/code/RegisterArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
         0: .line 94
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.allocatable:Ljdk/vm/ci/code/RegisterArray;
            areturn
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;

  public jdk.vm.ci.code.RegisterArray filterAllocatableRegisters(jdk.vm.ci.meta.PlatformKind, jdk.vm.ci.code.RegisterArray);
    descriptor: (Ljdk/vm/ci/meta/PlatformKind;Ljdk/vm/ci/code/RegisterArray;)Ljdk/vm/ci/code/RegisterArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
        start local 1 // jdk.vm.ci.meta.PlatformKind kind
        start local 2 // jdk.vm.ci.code.RegisterArray registers
         0: .line 99
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* list */
        start local 3 // java.util.ArrayList list
         1: .line 100
            aload 2 /* registers */
            invokevirtual jdk.vm.ci.code.RegisterArray.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig jdk.vm.ci.meta.PlatformKind jdk.vm.ci.code.RegisterArray java.util.ArrayList top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.vm.ci.code.Register
            astore 4 /* reg */
        start local 4 // jdk.vm.ci.code.Register reg
         3: .line 101
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.target:Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            aload 4 /* reg */
            invokevirtual jdk.vm.ci.code.Register.getRegisterCategory:()Ljdk/vm/ci/code/Register$RegisterCategory;
            aload 1 /* kind */
            invokevirtual jdk.vm.ci.code.Architecture.canStoreValue:(Ljdk/vm/ci/code/Register$RegisterCategory;Ljdk/vm/ci/meta/PlatformKind;)Z
            ifeq 5
         4: .line 102
            aload 3 /* list */
            aload 4 /* reg */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // jdk.vm.ci.code.Register reg
         5: .line 100
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 106
            new jdk.vm.ci.code.RegisterArray
            dup
            aload 3 /* list */
            invokespecial jdk.vm.ci.code.RegisterArray.<init>:(Ljava/util/Collection;)V
            areturn
        end local 3 // java.util.ArrayList list
        end local 2 // jdk.vm.ci.code.RegisterArray registers
        end local 1 // jdk.vm.ci.meta.PlatformKind kind
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;
            0    7     1       kind  Ljdk/vm/ci/meta/PlatformKind;
            0    7     2  registers  Ljdk/vm/ci/code/RegisterArray;
            1    7     3       list  Ljava/util/ArrayList<Ljdk/vm/ci/code/Register;>;
            3    5     4        reg  Ljdk/vm/ci/code/Register;
    MethodParameters:
           Name  Flags
      kind       
      registers  

  public jdk.vm.ci.code.RegisterAttributes[] getAttributesMap();
    descriptor: ()[Ljdk/vm/ci/code/RegisterAttributes;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
         0: .line 111
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.attributesMap:[Ljdk/vm/ci/code/RegisterAttributes;
            invokevirtual jdk.vm.ci.code.RegisterAttributes[].clone:()Ljava/lang/Object;
            checkcast jdk.vm.ci.code.RegisterAttributes[]
            areturn
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;

  private static jdk.vm.ci.code.RegisterArray initAllocatable(jdk.vm.ci.code.Architecture, boolean);
    descriptor: (Ljdk/vm/ci/code/Architecture;Z)Ljdk/vm/ci/code/RegisterArray;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // jdk.vm.ci.code.Architecture arch
        start local 1 // boolean reserveForHeapBase
         0: .line 132
            aload 0 /* arch */
            invokevirtual jdk.vm.ci.code.Architecture.getAvailableValueRegisters:()Ljdk/vm/ci/code/RegisterArray;
            astore 2 /* allRegisters */
        start local 2 // jdk.vm.ci.code.RegisterArray allRegisters
         1: .line 133
            aload 2 /* allRegisters */
            invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.reservedRegisters:Ljdk/vm/ci/code/RegisterArray;
            invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
            isub
            iload 1 /* reserveForHeapBase */
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: jdk.vm.ci.code.Architecture int jdk.vm.ci.code.RegisterArray
      StackMap stack: int
         2: iconst_0
      StackMap locals: jdk.vm.ci.code.Architecture int jdk.vm.ci.code.RegisterArray
      StackMap stack: int int
         3: isub
            anewarray jdk.vm.ci.code.Register
            astore 3 /* registers */
        start local 3 // jdk.vm.ci.code.Register[] registers
         4: .line 134
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.reservedRegisters:Ljdk/vm/ci/code/RegisterArray;
            invokevirtual jdk.vm.ci.code.RegisterArray.asList:()Ljava/util/List;
            astore 4 /* reservedRegistersList */
        start local 4 // java.util.List reservedRegistersList
         5: .line 136
            iconst_0
            istore 5 /* idx */
        start local 5 // int idx
         6: .line 137
            aload 2 /* allRegisters */
            invokevirtual jdk.vm.ci.code.RegisterArray.iterator:()Ljava/util/Iterator;
            astore 7
            goto 15
      StackMap locals: jdk.vm.ci.code.Architecture int jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.Register[] java.util.List int top java.util.Iterator
      StackMap stack:
         7: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.vm.ci.code.Register
            astore 6 /* reg */
        start local 6 // jdk.vm.ci.code.Register reg
         8: .line 138
            aload 4 /* reservedRegistersList */
            aload 6 /* reg */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 140
            goto 15
        10: .line 142
      StackMap locals: jdk.vm.ci.code.Architecture int jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.Register[] java.util.List int jdk.vm.ci.code.Register java.util.Iterator
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.$assertionsDisabled:Z
            ifne 12
            aload 6 /* reg */
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.threadRegister:Ljdk/vm/ci/code/Register;
            invokevirtual jdk.vm.ci.code.Register.equals:(Ljava/lang/Object;)Z
            ifne 11
            aload 6 /* reg */
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.fp:Ljdk/vm/ci/code/Register;
            invokevirtual jdk.vm.ci.code.Register.equals:(Ljava/lang/Object;)Z
            ifne 11
            aload 6 /* reg */
            getstatic jdk.vm.ci.aarch64.AArch64.lr:Ljdk/vm/ci/code/Register;
            invokevirtual jdk.vm.ci.code.Register.equals:(Ljava/lang/Object;)Z
            ifne 11
            aload 6 /* reg */
            getstatic jdk.vm.ci.aarch64.AArch64.r31:Ljdk/vm/ci/code/Register;
            invokevirtual jdk.vm.ci.code.Register.equals:(Ljava/lang/Object;)Z
            ifne 11
            aload 6 /* reg */
            getstatic jdk.vm.ci.aarch64.AArch64.zr:Ljdk/vm/ci/code/Register;
            invokevirtual jdk.vm.ci.code.Register.equals:(Ljava/lang/Object;)Z
            ifne 11
            aload 6 /* reg */
            getstatic jdk.vm.ci.aarch64.AArch64.sp:Ljdk/vm/ci/code/Register;
            invokevirtual jdk.vm.ci.code.Register.equals:(Ljava/lang/Object;)Z
            ifeq 12
      StackMap locals:
      StackMap stack:
        11: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 143
      StackMap locals:
      StackMap stack:
            iload 1 /* reserveForHeapBase */
            ifeq 14
            aload 6 /* reg */
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.heapBaseRegister:Ljdk/vm/ci/code/Register;
            invokevirtual jdk.vm.ci.code.Register.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 145
            goto 15
        14: .line 148
      StackMap locals:
      StackMap stack:
            aload 3 /* registers */
            iload 5 /* idx */
            iinc 5 /* idx */ 1
            aload 6 /* reg */
            aastore
        end local 6 // jdk.vm.ci.code.Register reg
        15: .line 137
      StackMap locals: jdk.vm.ci.code.Architecture int jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.Register[] java.util.List int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        16: .line 151
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.$assertionsDisabled:Z
            ifne 17
            iload 5 /* idx */
            aload 3 /* registers */
            arraylength
            if_icmpeq 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 152
      StackMap locals: jdk.vm.ci.code.Architecture int jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.Register[] java.util.List int
      StackMap stack:
            new jdk.vm.ci.code.RegisterArray
            dup
            aload 3 /* registers */
            invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
            areturn
        end local 5 // int idx
        end local 4 // java.util.List reservedRegistersList
        end local 3 // jdk.vm.ci.code.Register[] registers
        end local 2 // jdk.vm.ci.code.RegisterArray allRegisters
        end local 1 // boolean reserveForHeapBase
        end local 0 // jdk.vm.ci.code.Architecture arch
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   18     0                   arch  Ljdk/vm/ci/code/Architecture;
            0   18     1     reserveForHeapBase  Z
            1   18     2           allRegisters  Ljdk/vm/ci/code/RegisterArray;
            4   18     3              registers  [Ljdk/vm/ci/code/Register;
            5   18     4  reservedRegistersList  Ljava/util/List<Ljdk/vm/ci/code/Register;>;
            6   18     5                    idx  I
            8   15     6                    reg  Ljdk/vm/ci/code/Register;
    MethodParameters:
                    Name  Flags
      arch                
      reserveForHeapBase  

  public void <init>(jdk.vm.ci.code.TargetDescription, boolean);
    descriptor: (Ljdk/vm/ci/code/TargetDescription;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
        start local 1 // jdk.vm.ci.code.TargetDescription target
        start local 2 // boolean useCompressedOops
         0: .line 156
            aload 0 /* this */
            aload 1 /* target */
            aload 1 /* target */
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            iload 2 /* useCompressedOops */
            invokestatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.initAllocatable:(Ljdk/vm/ci/code/Architecture;Z)Ljdk/vm/ci/code/RegisterArray;
            invokespecial jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.<init>:(Ljdk/vm/ci/code/TargetDescription;Ljdk/vm/ci/code/RegisterArray;)V
         1: .line 157
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.callerSaved:Ljdk/vm/ci/code/RegisterArray;
            invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.allocatable:Ljdk/vm/ci/code/RegisterArray;
            invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
            if_icmpge 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 158
      StackMap locals: jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig jdk.vm.ci.code.TargetDescription int
      StackMap stack:
            return
        end local 2 // boolean useCompressedOops
        end local 1 // jdk.vm.ci.code.TargetDescription target
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;
            0    3     1             target  Ljdk/vm/ci/code/TargetDescription;
            0    3     2  useCompressedOops  Z
    MethodParameters:
                   Name  Flags
      target             
      useCompressedOops  

  public void <init>(jdk.vm.ci.code.TargetDescription, jdk.vm.ci.code.RegisterArray);
    descriptor: (Ljdk/vm/ci/code/TargetDescription;Ljdk/vm/ci/code/RegisterArray;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
        start local 1 // jdk.vm.ci.code.TargetDescription target
        start local 2 // jdk.vm.ci.code.RegisterArray allocatable
         0: .line 160
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 114
            aload 0 /* this */
            new jdk.vm.ci.code.RegisterArray
            dup
            bipush 8
            anewarray jdk.vm.ci.code.Register
            dup
            iconst_0
            getstatic jdk.vm.ci.aarch64.AArch64.r1:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_1
            getstatic jdk.vm.ci.aarch64.AArch64.r2:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_2
            getstatic jdk.vm.ci.aarch64.AArch64.r3:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_3
            getstatic jdk.vm.ci.aarch64.AArch64.r4:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_4
            getstatic jdk.vm.ci.aarch64.AArch64.r5:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_5
            getstatic jdk.vm.ci.aarch64.AArch64.r6:Ljdk/vm/ci/code/Register;
            aastore
            dup
            bipush 6
            getstatic jdk.vm.ci.aarch64.AArch64.r7:Ljdk/vm/ci/code/Register;
            aastore
            dup
            bipush 7
            getstatic jdk.vm.ci.aarch64.AArch64.r0:Ljdk/vm/ci/code/Register;
            aastore
            invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
            putfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.javaGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
         2: .line 115
            aload 0 /* this */
            new jdk.vm.ci.code.RegisterArray
            dup
            bipush 8
            anewarray jdk.vm.ci.code.Register
            dup
            iconst_0
            getstatic jdk.vm.ci.aarch64.AArch64.r0:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_1
            getstatic jdk.vm.ci.aarch64.AArch64.r1:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_2
            getstatic jdk.vm.ci.aarch64.AArch64.r2:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_3
            getstatic jdk.vm.ci.aarch64.AArch64.r3:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_4
            getstatic jdk.vm.ci.aarch64.AArch64.r4:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_5
            getstatic jdk.vm.ci.aarch64.AArch64.r5:Ljdk/vm/ci/code/Register;
            aastore
            dup
            bipush 6
            getstatic jdk.vm.ci.aarch64.AArch64.r6:Ljdk/vm/ci/code/Register;
            aastore
            dup
            bipush 7
            getstatic jdk.vm.ci.aarch64.AArch64.r7:Ljdk/vm/ci/code/Register;
            aastore
            invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
            putfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.nativeGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
         3: .line 116
            aload 0 /* this */
            new jdk.vm.ci.code.RegisterArray
            dup
            bipush 8
            anewarray jdk.vm.ci.code.Register
            dup
            iconst_0
            getstatic jdk.vm.ci.aarch64.AArch64.v0:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_1
            getstatic jdk.vm.ci.aarch64.AArch64.v1:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_2
            getstatic jdk.vm.ci.aarch64.AArch64.v2:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_3
            getstatic jdk.vm.ci.aarch64.AArch64.v3:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_4
            getstatic jdk.vm.ci.aarch64.AArch64.v4:Ljdk/vm/ci/code/Register;
            aastore
            dup
            iconst_5
            getstatic jdk.vm.ci.aarch64.AArch64.v5:Ljdk/vm/ci/code/Register;
            aastore
            dup
            bipush 6
            getstatic jdk.vm.ci.aarch64.AArch64.v6:Ljdk/vm/ci/code/Register;
            aastore
            dup
            bipush 7
            getstatic jdk.vm.ci.aarch64.AArch64.v7:Ljdk/vm/ci/code/Register;
            aastore
            invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
            putfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.simdParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
         4: .line 161
            aload 0 /* this */
            aload 1 /* target */
            putfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.target:Ljdk/vm/ci/code/TargetDescription;
         5: .line 163
            aload 0 /* this */
            aload 2 /* allocatable */
            putfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.allocatable:Ljdk/vm/ci/code/RegisterArray;
         6: .line 164
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* callerSaveSet */
        start local 3 // java.util.Set callerSaveSet
         7: .line 165
            aload 2 /* allocatable */
            aload 3 /* callerSaveSet */
            invokevirtual jdk.vm.ci.code.RegisterArray.addTo:(Ljava/util/Collection;)V
         8: .line 166
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.simdParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
            aload 3 /* callerSaveSet */
            invokevirtual jdk.vm.ci.code.RegisterArray.addTo:(Ljava/util/Collection;)V
         9: .line 167
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.javaGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
            aload 3 /* callerSaveSet */
            invokevirtual jdk.vm.ci.code.RegisterArray.addTo:(Ljava/util/Collection;)V
        10: .line 168
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.nativeGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
            aload 3 /* callerSaveSet */
            invokevirtual jdk.vm.ci.code.RegisterArray.addTo:(Ljava/util/Collection;)V
        11: .line 169
            aload 0 /* this */
            new jdk.vm.ci.code.RegisterArray
            dup
            aload 3 /* callerSaveSet */
            invokespecial jdk.vm.ci.code.RegisterArray.<init>:(Ljava/util/Collection;)V
            putfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.callerSaved:Ljdk/vm/ci/code/RegisterArray;
        12: .line 171
            aload 0 /* this */
            iconst_1
            putfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.allAllocatableAreCallerSaved:Z
        13: .line 172
            aload 0 /* this */
            aload 0 /* this */
            getstatic jdk.vm.ci.aarch64.AArch64.allRegisters:Ljdk/vm/ci/code/RegisterArray;
            invokestatic jdk.vm.ci.code.RegisterAttributes.createMap:(Ljdk/vm/ci/code/RegisterConfig;Ljdk/vm/ci/code/RegisterArray;)[Ljdk/vm/ci/code/RegisterAttributes;
            putfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.attributesMap:[Ljdk/vm/ci/code/RegisterAttributes;
        14: .line 173
            return
        end local 3 // java.util.Set callerSaveSet
        end local 2 // jdk.vm.ci.code.RegisterArray allocatable
        end local 1 // jdk.vm.ci.code.TargetDescription target
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;
            0   15     1         target  Ljdk/vm/ci/code/TargetDescription;
            0   15     2    allocatable  Ljdk/vm/ci/code/RegisterArray;
            7   15     3  callerSaveSet  Ljava/util/Set<Ljdk/vm/ci/code/Register;>;
    MethodParameters:
             Name  Flags
      target       
      allocatable  

  public jdk.vm.ci.code.RegisterArray getCallerSaveRegisters();
    descriptor: ()Ljdk/vm/ci/code/RegisterArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
         0: .line 177
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.callerSaved:Ljdk/vm/ci/code/RegisterArray;
            areturn
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;

  public jdk.vm.ci.code.RegisterArray getCalleeSaveRegisters();
    descriptor: ()Ljdk/vm/ci/code/RegisterArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
         0: .line 182
            aconst_null
            areturn
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;

  public boolean areAllAllocatableRegistersCallerSaved();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
         0: .line 187
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.allAllocatableAreCallerSaved:Z
            ireturn
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;

  public jdk.vm.ci.code.CallingConvention getCallingConvention(jdk.vm.ci.code.CallingConvention$Type, jdk.vm.ci.meta.JavaType, jdk.vm.ci.meta.JavaType[], jdk.vm.ci.code.ValueKindFactory<?>);
    descriptor: (Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/code/ValueKindFactory;)Ljdk/vm/ci/code/CallingConvention;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
        start local 1 // jdk.vm.ci.code.CallingConvention$Type type
        start local 2 // jdk.vm.ci.meta.JavaType returnType
        start local 3 // jdk.vm.ci.meta.JavaType[] parameterTypes
        start local 4 // jdk.vm.ci.code.ValueKindFactory valueKindFactory
         0: .line 192
            aload 1 /* type */
            checkcast jdk.vm.ci.hotspot.HotSpotCallingConventionType
            astore 5 /* hotspotType */
        start local 5 // jdk.vm.ci.hotspot.HotSpotCallingConventionType hotspotType
         1: .line 193
            aload 1 /* type */
            getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
            if_acmpne 3
         2: .line 194
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.nativeGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
            aload 2 /* returnType */
            aload 3 /* parameterTypes */
            aload 5 /* hotspotType */
            aload 4 /* valueKindFactory */
            invokevirtual jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.callingConvention:(Ljdk/vm/ci/code/RegisterArray;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;Ljdk/vm/ci/code/ValueKindFactory;)Ljdk/vm/ci/code/CallingConvention;
            areturn
         3: .line 198
      StackMap locals: jdk.vm.ci.hotspot.HotSpotCallingConventionType
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.javaGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
            aload 2 /* returnType */
            aload 3 /* parameterTypes */
            aload 5 /* hotspotType */
            aload 4 /* valueKindFactory */
            invokevirtual jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.callingConvention:(Ljdk/vm/ci/code/RegisterArray;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;Ljdk/vm/ci/code/ValueKindFactory;)Ljdk/vm/ci/code/CallingConvention;
            areturn
        end local 5 // jdk.vm.ci.hotspot.HotSpotCallingConventionType hotspotType
        end local 4 // jdk.vm.ci.code.ValueKindFactory valueKindFactory
        end local 3 // jdk.vm.ci.meta.JavaType[] parameterTypes
        end local 2 // jdk.vm.ci.meta.JavaType returnType
        end local 1 // jdk.vm.ci.code.CallingConvention$Type type
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;
            0    4     1              type  Ljdk/vm/ci/code/CallingConvention$Type;
            0    4     2        returnType  Ljdk/vm/ci/meta/JavaType;
            0    4     3    parameterTypes  [Ljdk/vm/ci/meta/JavaType;
            0    4     4  valueKindFactory  Ljdk/vm/ci/code/ValueKindFactory<*>;
            1    4     5       hotspotType  Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
    Signature: (Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/code/ValueKindFactory<*>;)Ljdk/vm/ci/code/CallingConvention;
    MethodParameters:
                  Name  Flags
      type              
      returnType        
      parameterTypes    
      valueKindFactory  

  public jdk.vm.ci.code.RegisterArray getCallingConventionRegisters(jdk.vm.ci.code.CallingConvention$Type, jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/code/RegisterArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
        start local 1 // jdk.vm.ci.code.CallingConvention$Type type
        start local 2 // jdk.vm.ci.meta.JavaKind kind
         0: .line 203
            aload 1 /* type */
            checkcast jdk.vm.ci.hotspot.HotSpotCallingConventionType
            astore 3 /* hotspotType */
        start local 3 // jdk.vm.ci.hotspot.HotSpotCallingConventionType hotspotType
         1: .line 204
            invokestatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 2 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iaload
            tableswitch { // 1 - 9
                    1: 2
                    2: 2
                    3: 2
                    4: 2
                    5: 2
                    6: 5
                    7: 2
                    8: 5
                    9: 2
              default: 6
          }
         2: .line 212
      StackMap locals: jdk.vm.ci.hotspot.HotSpotCallingConventionType
      StackMap stack:
            aload 3 /* hotspotType */
            getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
            if_acmpne 3
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.nativeGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.javaGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
      StackMap locals:
      StackMap stack: jdk.vm.ci.code.RegisterArray
         4: areturn
         5: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.simdParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
            areturn
         6: .line 217
      StackMap locals:
      StackMap stack:
            invokestatic jdk.vm.ci.common.JVMCIError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // jdk.vm.ci.hotspot.HotSpotCallingConventionType hotspotType
        end local 2 // jdk.vm.ci.meta.JavaKind kind
        end local 1 // jdk.vm.ci.code.CallingConvention$Type type
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;
            0    7     1         type  Ljdk/vm/ci/code/CallingConvention$Type;
            0    7     2         kind  Ljdk/vm/ci/meta/JavaKind;
            1    7     3  hotspotType  Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
    MethodParameters:
      Name  Flags
      type  
      kind  

  private jdk.vm.ci.code.CallingConvention callingConvention(jdk.vm.ci.code.RegisterArray, jdk.vm.ci.meta.JavaType, jdk.vm.ci.meta.JavaType[], jdk.vm.ci.hotspot.HotSpotCallingConventionType, jdk.vm.ci.code.ValueKindFactory<?>);
    descriptor: (Ljdk/vm/ci/code/RegisterArray;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;Ljdk/vm/ci/code/ValueKindFactory;)Ljdk/vm/ci/code/CallingConvention;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=6
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
        start local 1 // jdk.vm.ci.code.RegisterArray generalParameterRegisters
        start local 2 // jdk.vm.ci.meta.JavaType returnType
        start local 3 // jdk.vm.ci.meta.JavaType[] parameterTypes
        start local 4 // jdk.vm.ci.hotspot.HotSpotCallingConventionType type
        start local 5 // jdk.vm.ci.code.ValueKindFactory valueKindFactory
         0: .line 223
            aload 3 /* parameterTypes */
            arraylength
            anewarray jdk.vm.ci.meta.AllocatableValue
            astore 6 /* locations */
        start local 6 // jdk.vm.ci.meta.AllocatableValue[] locations
         1: .line 225
            iconst_0
            istore 7 /* currentGeneral */
        start local 7 // int currentGeneral
         2: .line 226
            iconst_0
            istore 8 /* currentSIMD */
        start local 8 // int currentSIMD
         3: .line 227
            iconst_0
            istore 9 /* currentStackOffset */
        start local 9 // int currentStackOffset
         4: .line 229
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         5: goto 24
         6: .line 230
      StackMap locals: jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig jdk.vm.ci.code.RegisterArray jdk.vm.ci.meta.JavaType jdk.vm.ci.meta.JavaType[] jdk.vm.ci.hotspot.HotSpotCallingConventionType jdk.vm.ci.code.ValueKindFactory jdk.vm.ci.meta.AllocatableValue[] int int int int
      StackMap stack:
            aload 3 /* parameterTypes */
            iload 10 /* i */
            aaload
            invokeinterface jdk.vm.ci.meta.JavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 11 /* kind */
        start local 11 // jdk.vm.ci.meta.JavaKind kind
         7: .line 232
            invokestatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 11 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iaload
            tableswitch { // 1 - 9
                    1: 8
                    2: 8
                    3: 8
                    4: 8
                    5: 8
                    6: 12
                    7: 8
                    8: 12
                    9: 8
              default: 16
          }
         8: .line 240
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            iload 7 /* currentGeneral */
            aload 1 /* generalParameterRegisters */
            invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
            if_icmpge 17
         9: .line 241
            aload 1 /* generalParameterRegisters */
            iload 7 /* currentGeneral */
            iinc 7 /* currentGeneral */ 1
            invokevirtual jdk.vm.ci.code.RegisterArray.get:(I)Ljdk/vm/ci/code/Register;
            astore 12 /* register */
        start local 12 // jdk.vm.ci.code.Register register
        10: .line 242
            aload 6 /* locations */
            iload 10 /* i */
            aload 12 /* register */
            aload 5 /* valueKindFactory */
            aload 11 /* kind */
            invokeinterface jdk.vm.ci.code.ValueKindFactory.getValueKind:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ValueKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            aastore
        end local 12 // jdk.vm.ci.code.Register register
        11: .line 244
            goto 17
        12: .line 247
      StackMap locals:
      StackMap stack:
            iload 8 /* currentSIMD */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.simdParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
            invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
            if_icmpge 17
        13: .line 248
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.simdParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
            iload 8 /* currentSIMD */
            iinc 8 /* currentSIMD */ 1
            invokevirtual jdk.vm.ci.code.RegisterArray.get:(I)Ljdk/vm/ci/code/Register;
            astore 12 /* register */
        start local 12 // jdk.vm.ci.code.Register register
        14: .line 249
            aload 6 /* locations */
            iload 10 /* i */
            aload 12 /* register */
            aload 5 /* valueKindFactory */
            aload 11 /* kind */
            invokeinterface jdk.vm.ci.code.ValueKindFactory.getValueKind:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ValueKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            aastore
        end local 12 // jdk.vm.ci.code.Register register
        15: .line 251
            goto 17
        16: .line 253
      StackMap locals:
      StackMap stack:
            invokestatic jdk.vm.ci.common.JVMCIError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        17: .line 256
      StackMap locals:
      StackMap stack:
            aload 6 /* locations */
            iload 10 /* i */
            aaload
            ifnonnull 23
        18: .line 257
            aload 5 /* valueKindFactory */
            aload 11 /* kind */
            invokeinterface jdk.vm.ci.code.ValueKindFactory.getValueKind:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ValueKind;
            astore 12 /* valueKind */
        start local 12 // jdk.vm.ci.meta.ValueKind valueKind
        19: .line 258
            aload 6 /* locations */
            iload 10 /* i */
            aload 12 /* valueKind */
            iload 9 /* currentStackOffset */
            aload 4 /* type */
            getfield jdk.vm.ci.hotspot.HotSpotCallingConventionType.out:Z
            ifeq 20
            iconst_0
            goto 21
      StackMap locals: jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig jdk.vm.ci.code.RegisterArray jdk.vm.ci.meta.JavaType jdk.vm.ci.meta.JavaType[] jdk.vm.ci.hotspot.HotSpotCallingConventionType jdk.vm.ci.code.ValueKindFactory jdk.vm.ci.meta.AllocatableValue[] int int int int jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.ValueKind
      StackMap stack: jdk.vm.ci.meta.AllocatableValue[] int jdk.vm.ci.meta.ValueKind int
        20: iconst_1
      StackMap locals: jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig jdk.vm.ci.code.RegisterArray jdk.vm.ci.meta.JavaType jdk.vm.ci.meta.JavaType[] jdk.vm.ci.hotspot.HotSpotCallingConventionType jdk.vm.ci.code.ValueKindFactory jdk.vm.ci.meta.AllocatableValue[] int int int int jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.ValueKind
      StackMap stack: jdk.vm.ci.meta.AllocatableValue[] int jdk.vm.ci.meta.ValueKind int int
        21: invokestatic jdk.vm.ci.code.StackSlot.get:(Ljdk/vm/ci/meta/ValueKind;IZ)Ljdk/vm/ci/code/StackSlot;
            aastore
        22: .line 259
            iload 9 /* currentStackOffset */
            aload 12 /* valueKind */
            invokevirtual jdk.vm.ci.meta.ValueKind.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
            invokeinterface jdk.vm.ci.meta.PlatformKind.getSizeInBytes:()I
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.target:Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.wordSize:I
            invokestatic java.lang.Math.max:(II)I
            iadd
            istore 9 /* currentStackOffset */
        end local 12 // jdk.vm.ci.meta.ValueKind valueKind
        end local 11 // jdk.vm.ci.meta.JavaKind kind
        23: .line 229
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 10 /* i */
            aload 3 /* parameterTypes */
            arraylength
            if_icmplt 6
        end local 10 // int i
        25: .line 263
            aload 2 /* returnType */
            ifnonnull 26
            getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
            goto 27
      StackMap locals:
      StackMap stack:
        26: aload 2 /* returnType */
            invokeinterface jdk.vm.ci.meta.JavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
      StackMap locals:
      StackMap stack: jdk.vm.ci.meta.JavaKind
        27: astore 10 /* returnKind */
        start local 10 // jdk.vm.ci.meta.JavaKind returnKind
        28: .line 264
            aload 10 /* returnKind */
            getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 29
            getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
            goto 30
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
        29: aload 0 /* this */
            aload 10 /* returnKind */
            invokevirtual jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.getReturnRegister:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/code/Register;
            aload 5 /* valueKindFactory */
            aload 10 /* returnKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokeinterface jdk.vm.ci.code.ValueKindFactory.getValueKind:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ValueKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
      StackMap locals:
      StackMap stack: jdk.vm.ci.meta.AllocatableValue
        30: astore 11 /* returnLocation */
        start local 11 // jdk.vm.ci.meta.AllocatableValue returnLocation
        31: .line 265
            new jdk.vm.ci.code.CallingConvention
            dup
            iload 9 /* currentStackOffset */
            aload 11 /* returnLocation */
            aload 6 /* locations */
            invokespecial jdk.vm.ci.code.CallingConvention.<init>:(ILjdk/vm/ci/meta/AllocatableValue;[Ljdk/vm/ci/meta/AllocatableValue;)V
            areturn
        end local 11 // jdk.vm.ci.meta.AllocatableValue returnLocation
        end local 10 // jdk.vm.ci.meta.JavaKind returnKind
        end local 9 // int currentStackOffset
        end local 8 // int currentSIMD
        end local 7 // int currentGeneral
        end local 6 // jdk.vm.ci.meta.AllocatableValue[] locations
        end local 5 // jdk.vm.ci.code.ValueKindFactory valueKindFactory
        end local 4 // jdk.vm.ci.hotspot.HotSpotCallingConventionType type
        end local 3 // jdk.vm.ci.meta.JavaType[] parameterTypes
        end local 2 // jdk.vm.ci.meta.JavaType returnType
        end local 1 // jdk.vm.ci.code.RegisterArray generalParameterRegisters
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   32     0                       this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;
            0   32     1  generalParameterRegisters  Ljdk/vm/ci/code/RegisterArray;
            0   32     2                 returnType  Ljdk/vm/ci/meta/JavaType;
            0   32     3             parameterTypes  [Ljdk/vm/ci/meta/JavaType;
            0   32     4                       type  Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
            0   32     5           valueKindFactory  Ljdk/vm/ci/code/ValueKindFactory<*>;
            1   32     6                  locations  [Ljdk/vm/ci/meta/AllocatableValue;
            2   32     7             currentGeneral  I
            3   32     8                currentSIMD  I
            4   32     9         currentStackOffset  I
            5   25    10                          i  I
            7   23    11                       kind  Ljdk/vm/ci/meta/JavaKind;
           10   11    12                   register  Ljdk/vm/ci/code/Register;
           14   15    12                   register  Ljdk/vm/ci/code/Register;
           19   23    12                  valueKind  Ljdk/vm/ci/meta/ValueKind<*>;
           28   32    10                 returnKind  Ljdk/vm/ci/meta/JavaKind;
           31   32    11             returnLocation  Ljdk/vm/ci/meta/AllocatableValue;
    Signature: (Ljdk/vm/ci/code/RegisterArray;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;Ljdk/vm/ci/code/ValueKindFactory<*>;)Ljdk/vm/ci/code/CallingConvention;
    MethodParameters:
                           Name  Flags
      generalParameterRegisters  
      returnType                 
      parameterTypes             
      type                       
      valueKindFactory           

  public jdk.vm.ci.code.Register getReturnRegister(jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/code/Register;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
        start local 1 // jdk.vm.ci.meta.JavaKind kind
         0: .line 270
            invokestatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 1 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iaload
            tableswitch { // 1 - 11
                    1: 1
                    2: 1
                    3: 1
                    4: 1
                    5: 1
                    6: 2
                    7: 1
                    8: 2
                    9: 1
                   10: 3
                   11: 3
              default: 4
          }
         1: .line 278
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.aarch64.AArch64.r0:Ljdk/vm/ci/code/Register;
            areturn
         2: .line 281
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.aarch64.AArch64.v0:Ljdk/vm/ci/code/Register;
            areturn
         3: .line 284
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         4: .line 286
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "no return register for type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* kind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // jdk.vm.ci.meta.JavaKind kind
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;
            0    5     1  kind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
      Name  Flags
      kind  

  public jdk.vm.ci.code.Register getFrameRegister();
    descriptor: ()Ljdk/vm/ci/code/Register;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
         0: .line 292
            getstatic jdk.vm.ci.aarch64.AArch64.sp:Ljdk/vm/ci/code/Register;
            areturn
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
         0: .line 297
            new java.lang.StringBuilder
            dup
            ldc "Allocatable: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.getAllocatableRegisters:()Ljdk/vm/ci/code/RegisterArray;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "%n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "CallerSave:  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.getCallerSaveRegisters:()Ljdk/vm/ci/code/RegisterArray;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "%n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig;

  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 77
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.$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 jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.$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: "AArch64HotSpotRegisterConfig.java"
InnerClasses:
  public abstract Type = jdk.vm.ci.code.CallingConvention$Type of jdk.vm.ci.code.CallingConvention
  public RegisterCategory = jdk.vm.ci.code.Register$RegisterCategory of jdk.vm.ci.code.Register