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 platformRegister;
    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 78
            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 119
            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 124
            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 131
            getstatic jdk.vm.ci.aarch64.AArch64.r18:Ljdk/vm/ci/code/Register;
            putstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.platformRegister:Ljdk/vm/ci/code/Register;
         6: .line 132
            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;
         7: .line 133
            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;
         8: .line 134
            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;
         9: .line 136
            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 95
            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 100
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* list */
        start local 3 // java.util.ArrayList list
         1: .line 101
            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 102
            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 103
            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 101
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 107
            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 112
            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, boolean);
    descriptor: (Ljdk/vm/ci/code/Architecture;ZZ)Ljdk/vm/ci/code/RegisterArray;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // jdk.vm.ci.code.Architecture arch
        start local 1 // boolean reserveForHeapBase
        start local 2 // boolean canUsePlatformRegister
         0: .line 139
            aload 0 /* arch */
            invokevirtual jdk.vm.ci.code.Architecture.getAvailableValueRegisters:()Ljdk/vm/ci/code/RegisterArray;
            astore 3 /* allRegisters */
        start local 3 // jdk.vm.ci.code.RegisterArray allRegisters
         1: .line 140
            aload 3 /* 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 int jdk.vm.ci.code.RegisterArray
      StackMap stack: int
         2: iconst_0
      StackMap locals: jdk.vm.ci.code.Architecture int int jdk.vm.ci.code.RegisterArray
      StackMap stack: int int
         3: isub
            iload 2 /* canUsePlatformRegister */
            ifne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: jdk.vm.ci.code.Architecture int int jdk.vm.ci.code.RegisterArray
      StackMap stack: int int
         5: isub
            anewarray jdk.vm.ci.code.Register
            astore 4 /* registers */
        start local 4 // jdk.vm.ci.code.Register[] registers
         6: .line 141
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.reservedRegisters:Ljdk/vm/ci/code/RegisterArray;
            invokevirtual jdk.vm.ci.code.RegisterArray.asList:()Ljava/util/List;
            astore 5 /* reservedRegistersList */
        start local 5 // java.util.List reservedRegistersList
         7: .line 143
            iconst_0
            istore 6 /* idx */
        start local 6 // int idx
         8: .line 144
            aload 3 /* allRegisters */
            invokevirtual jdk.vm.ci.code.RegisterArray.iterator:()Ljava/util/Iterator;
            astore 8
            goto 19
      StackMap locals: jdk.vm.ci.code.Architecture int int jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.Register[] java.util.List int top java.util.Iterator
      StackMap stack:
         9: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.vm.ci.code.Register
            astore 7 /* reg */
        start local 7 // jdk.vm.ci.code.Register reg
        10: .line 145
            aload 5 /* reservedRegistersList */
            aload 7 /* reg */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 147
            goto 19
        12: .line 149
      StackMap locals: jdk.vm.ci.code.Architecture int 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:
            iload 2 /* canUsePlatformRegister */
            ifne 14
            aload 7 /* reg */
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.platformRegister:Ljdk/vm/ci/code/Register;
            invokevirtual jdk.vm.ci.code.Register.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 150
            goto 19
        14: .line 152
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.$assertionsDisabled:Z
            ifne 16
            aload 7 /* 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 15
            aload 7 /* 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 15
            aload 7 /* 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 15
            aload 7 /* 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 15
            aload 7 /* 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 15
            aload 7 /* 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 16
      StackMap locals:
      StackMap stack:
        15: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 153
      StackMap locals:
      StackMap stack:
            iload 1 /* reserveForHeapBase */
            ifeq 18
            aload 7 /* 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 18
        17: .line 155
            goto 19
        18: .line 158
      StackMap locals:
      StackMap stack:
            aload 4 /* registers */
            iload 6 /* idx */
            iinc 6 /* idx */ 1
            aload 7 /* reg */
            aastore
        end local 7 // jdk.vm.ci.code.Register reg
        19: .line 144
      StackMap locals: jdk.vm.ci.code.Architecture int int jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.Register[] java.util.List int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        20: .line 161
            getstatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.$assertionsDisabled:Z
            ifne 21
            iload 6 /* idx */
            aload 4 /* registers */
            arraylength
            if_icmpeq 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 162
      StackMap locals: jdk.vm.ci.code.Architecture int 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 4 /* registers */
            invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
            areturn
        end local 6 // int idx
        end local 5 // java.util.List reservedRegistersList
        end local 4 // jdk.vm.ci.code.Register[] registers
        end local 3 // jdk.vm.ci.code.RegisterArray allRegisters
        end local 2 // boolean canUsePlatformRegister
        end local 1 // boolean reserveForHeapBase
        end local 0 // jdk.vm.ci.code.Architecture arch
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   22     0                    arch  Ljdk/vm/ci/code/Architecture;
            0   22     1      reserveForHeapBase  Z
            0   22     2  canUsePlatformRegister  Z
            1   22     3            allRegisters  Ljdk/vm/ci/code/RegisterArray;
            6   22     4               registers  [Ljdk/vm/ci/code/Register;
            7   22     5   reservedRegistersList  Ljava/util/List<Ljdk/vm/ci/code/Register;>;
            8   22     6                     idx  I
           10   19     7                     reg  Ljdk/vm/ci/code/Register;
    MethodParameters:
                        Name  Flags
      arch                    
      reserveForHeapBase      
      canUsePlatformRegister  

  public void <init>(jdk.vm.ci.code.TargetDescription, boolean, boolean);
    descriptor: (Ljdk/vm/ci/code/TargetDescription;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig this
        start local 1 // jdk.vm.ci.code.TargetDescription target
        start local 2 // boolean useCompressedOops
        start local 3 // boolean canUsePlatformRegister
         0: .line 166
            aload 0 /* this */
            aload 1 /* target */
            aload 1 /* target */
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            iload 2 /* useCompressedOops */
            iload 3 /* canUsePlatformRegister */
            invokestatic jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.initAllocatable:(Ljdk/vm/ci/code/Architecture;ZZ)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 167
            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 168
      StackMap locals: jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig jdk.vm.ci.code.TargetDescription int int
      StackMap stack:
            return
        end local 3 // boolean canUsePlatformRegister
        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
            0    3     3  canUsePlatformRegister  Z
    MethodParameters:
                        Name  Flags
      target                  
      useCompressedOops       
      canUsePlatformRegister  

  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 170
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .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.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 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.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 117
            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 171
            aload 0 /* this */
            aload 1 /* target */
            putfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.target:Ljdk/vm/ci/code/TargetDescription;
         5: .line 173
            aload 0 /* this */
            aload 2 /* allocatable */
            putfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.allocatable:Ljdk/vm/ci/code/RegisterArray;
         6: .line 174
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* callerSaveSet */
        start local 3 // java.util.Set callerSaveSet
         7: .line 175
            aload 2 /* allocatable */
            aload 3 /* callerSaveSet */
            invokevirtual jdk.vm.ci.code.RegisterArray.addTo:(Ljava/util/Collection;)V
         8: .line 176
            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 177
            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 178
            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 179
            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 181
            aload 0 /* this */
            iconst_1
            putfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.allAllocatableAreCallerSaved:Z
        13: .line 182
            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 183
            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 187
            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 192
            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 197
            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 202
            aload 1 /* type */
            checkcast jdk.vm.ci.hotspot.HotSpotCallingConventionType
            astore 5 /* hotspotType */
        start local 5 // jdk.vm.ci.hotspot.HotSpotCallingConventionType hotspotType
         1: .line 203
            aload 1 /* type */
            getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
            if_acmpne 3
         2: .line 204
            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 208
      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 213
            aload 1 /* type */
            checkcast jdk.vm.ci.hotspot.HotSpotCallingConventionType
            astore 3 /* hotspotType */
        start local 3 // jdk.vm.ci.hotspot.HotSpotCallingConventionType hotspotType
         1: .line 214
            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 222
      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 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.simdParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
            areturn
         6: .line 227
      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 233
            aload 3 /* parameterTypes */
            arraylength
            anewarray jdk.vm.ci.meta.AllocatableValue
            astore 6 /* locations */
        start local 6 // jdk.vm.ci.meta.AllocatableValue[] locations
         1: .line 235
            iconst_0
            istore 7 /* currentGeneral */
        start local 7 // int currentGeneral
         2: .line 236
            iconst_0
            istore 8 /* currentSIMD */
        start local 8 // int currentSIMD
         3: .line 237
            iconst_0
            istore 9 /* currentStackOffset */
        start local 9 // int currentStackOffset
         4: .line 239
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         5: goto 24
         6: .line 240
      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 242
            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 250
      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 251
            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 252
            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 254
            goto 17
        12: .line 257
      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 258
            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 259
            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 261
            goto 17
        16: .line 263
      StackMap locals:
      StackMap stack:
            invokestatic jdk.vm.ci.common.JVMCIError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        17: .line 266
      StackMap locals:
      StackMap stack:
            aload 6 /* locations */
            iload 10 /* i */
            aaload
            ifnonnull 23
        18: .line 267
            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 268
            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 269
            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 239
      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 273
            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 274
            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 275
            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 280
            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 288
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.aarch64.AArch64.r0:Ljdk/vm/ci/code/Register;
            areturn
         2: .line 291
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.aarch64.AArch64.v0:Ljdk/vm/ci/code/Register;
            areturn
         3: .line 294
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         4: .line 296
      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 302
            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 307
            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 78
            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