public abstract class org.graalvm.compiler.replacements.AllocationSnippets implements org.graalvm.compiler.replacements.Snippets
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.replacements.AllocationSnippets
  super_class: java.lang.Object
{
  private static final int MAX_UNROLLED_OBJECT_ZEROING_STORES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/AllocationSnippets;

  protected java.lang.Object allocateInstanceImpl(org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, jdk.internal.vm.compiler.word.UnsignedWord, boolean, boolean, boolean, org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData);
    descriptor: (Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Ljdk/internal/vm/compiler/word/UnsignedWord;ZZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationProfilingData;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=13, args_size=8
        start local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
        start local 1 // org.graalvm.compiler.word.Word hub
        start local 2 // org.graalvm.compiler.word.Word prototypeMarkWord
        start local 3 // jdk.internal.vm.compiler.word.UnsignedWord size
        start local 4 // boolean fillContents
        start local 5 // boolean emitMemoryBarrier
        start local 6 // boolean constantSize
        start local 7 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData profilingData
         0: .line 58
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.getTLABInfo:()Lorg/graalvm/compiler/word/Word;
            astore 9 /* tlabInfo */
        start local 9 // org.graalvm.compiler.word.Word tlabInfo
         1: .line 59
            aload 0 /* this */
            aload 9 /* tlabInfo */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.readTlabTop:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 10 /* top */
        start local 10 // org.graalvm.compiler.word.Word top
         2: .line 60
            aload 0 /* this */
            aload 9 /* tlabInfo */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.readTlabEnd:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 11 /* end */
        start local 11 // org.graalvm.compiler.word.Word end
         3: .line 61
            aload 10 /* top */
            aload 3 /* size */
            invokevirtual org.graalvm.compiler.word.Word.add:(Ljdk/internal/vm/compiler/word/UnsignedWord;)Lorg/graalvm/compiler/word/Word;
            astore 12 /* newTop */
        start local 12 // org.graalvm.compiler.word.Word newTop
         4: .line 62
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.useTLAB:()Z
            ifeq 9
            ldc 0.99
            aload 0 /* this */
            aload 3 /* size */
            iconst_0
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.shouldAllocateInTLAB:(Ljdk/internal/vm/compiler/word/UnsignedWord;Z)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 9
            ldc 0.99
            aload 12 /* newTop */
            aload 11 /* end */
            invokevirtual org.graalvm.compiler.word.Word.belowOrEqual:(Lorg/graalvm/compiler/word/Word;)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 9
         5: .line 63
            aload 0 /* this */
            aload 9 /* tlabInfo */
            aload 12 /* newTop */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.writeTlabTop:(Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;)V
         6: .line 64
            aload 0 /* this */
            aload 12 /* newTop */
            iconst_0
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.emitPrefetchAllocate:(Lorg/graalvm/compiler/word/Word;Z)V
         7: .line 65
            aload 0 /* this */
            aload 1 /* hub */
            aload 2 /* prototypeMarkWord */
            aload 3 /* size */
            aload 10 /* top */
            iload 4 /* fillContents */
            iload 5 /* emitMemoryBarrier */
            iload 6 /* constantSize */
            aload 7 /* profilingData */
            getfield org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData.snippetCounters:Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.formatObject:(Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Ljdk/internal/vm/compiler/word/UnsignedWord;Lorg/graalvm/compiler/word/Word;ZZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)Ljava/lang/Object;
            astore 8 /* result */
        start local 8 // java.lang.Object result
         8: .line 66
            goto 11
        end local 8 // java.lang.Object result
         9: .line 67
      StackMap locals: org.graalvm.compiler.replacements.AllocationSnippets org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word jdk.internal.vm.compiler.word.UnsignedWord int int int org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData top org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
      StackMap stack:
            aload 7 /* profilingData */
            getfield org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData.snippetCounters:Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;
            getfield org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters.stub:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        10: .line 68
            aload 0 /* this */
            aload 1 /* hub */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.callNewInstanceStub:(Lorg/graalvm/compiler/word/Word;)Ljava/lang/Object;
            astore 8 /* result */
        start local 8 // java.lang.Object result
        11: .line 70
      StackMap locals: org.graalvm.compiler.replacements.AllocationSnippets org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word jdk.internal.vm.compiler.word.UnsignedWord int int int org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
      StackMap stack:
            aload 0 /* this */
            aload 7 /* profilingData */
            aload 3 /* size */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.profileAllocation:(Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationProfilingData;Ljdk/internal/vm/compiler/word/UnsignedWord;)V
        12: .line 71
            aload 0 /* this */
            aload 8 /* result */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.verifyOop:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 12 // org.graalvm.compiler.word.Word newTop
        end local 11 // org.graalvm.compiler.word.Word end
        end local 10 // org.graalvm.compiler.word.Word top
        end local 9 // org.graalvm.compiler.word.Word tlabInfo
        end local 8 // java.lang.Object result
        end local 7 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData profilingData
        end local 6 // boolean constantSize
        end local 5 // boolean emitMemoryBarrier
        end local 4 // boolean fillContents
        end local 3 // jdk.internal.vm.compiler.word.UnsignedWord size
        end local 2 // org.graalvm.compiler.word.Word prototypeMarkWord
        end local 1 // org.graalvm.compiler.word.Word hub
        end local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   13     0               this  Lorg/graalvm/compiler/replacements/AllocationSnippets;
            0   13     1                hub  Lorg/graalvm/compiler/word/Word;
            0   13     2  prototypeMarkWord  Lorg/graalvm/compiler/word/Word;
            0   13     3               size  Ljdk/internal/vm/compiler/word/UnsignedWord;
            0   13     4       fillContents  Z
            0   13     5  emitMemoryBarrier  Z
            0   13     6       constantSize  Z
            0   13     7      profilingData  Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationProfilingData;
            8    9     8             result  Ljava/lang/Object;
           11   13     8             result  Ljava/lang/Object;
            1   13     9           tlabInfo  Lorg/graalvm/compiler/word/Word;
            2   13    10                top  Lorg/graalvm/compiler/word/Word;
            3   13    11                end  Lorg/graalvm/compiler/word/Word;
            4   13    12             newTop  Lorg/graalvm/compiler/word/Word;
    MethodParameters:
                   Name  Flags
      hub                
      prototypeMarkWord  
      size               
      fillContents       
      emitMemoryBarrier  
      constantSize       
      profilingData      

  protected java.lang.Object allocateArrayImpl(org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, int, int, int, boolean, int, boolean, boolean, boolean, org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData);
    descriptor: (Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;IIIZIZZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationProfilingData;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=12, locals=18, args_size=12
        start local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
        start local 1 // org.graalvm.compiler.word.Word hub
        start local 2 // org.graalvm.compiler.word.Word prototypeMarkWord
        start local 3 // int length
        start local 4 // int headerSize
        start local 5 // int log2ElementSize
        start local 6 // boolean fillContents
        start local 7 // int fillStartOffset
        start local 8 // boolean emitMemoryBarrier
        start local 9 // boolean maybeUnroll
        start local 10 // boolean supportsBulkZeroing
        start local 11 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData profilingData
         0: .line 85
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.getTLABInfo:()Lorg/graalvm/compiler/word/Word;
            astore 12 /* thread */
        start local 12 // org.graalvm.compiler.word.Word thread
         1: .line 86
            aload 0 /* this */
            aload 12 /* thread */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.readTlabTop:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 13 /* top */
        start local 13 // org.graalvm.compiler.word.Word top
         2: .line 87
            aload 0 /* this */
            aload 12 /* thread */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.readTlabEnd:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 14 /* end */
        start local 14 // org.graalvm.compiler.word.Word end
         3: .line 88
            aload 14 /* end */
            aload 13 /* top */
            invokevirtual org.graalvm.compiler.word.Word.subtract:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            ldc 2147483647
            invokevirtual org.graalvm.compiler.word.Word.belowOrEqual:(I)Z
            ldc "TLAB is too large"
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.dynamicAssert:(ZLjava/lang/String;)V
         4: .line 92
            aload 0 /* this */
            iload 3 /* length */
            iload 4 /* headerSize */
            iload 5 /* log2ElementSize */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.arrayAllocationSize:(III)Ljdk/internal/vm/compiler/word/UnsignedWord;
            astore 15 /* allocationSize */
        start local 15 // jdk.internal.vm.compiler.word.UnsignedWord allocationSize
         5: .line 93
            aload 13 /* top */
            aload 15 /* allocationSize */
            invokevirtual org.graalvm.compiler.word.Word.add:(Ljdk/internal/vm/compiler/word/UnsignedWord;)Lorg/graalvm/compiler/word/Word;
            astore 16 /* newTop */
        start local 16 // org.graalvm.compiler.word.Word newTop
         6: .line 96
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.useTLAB:()Z
            ifeq 13
            ldc 0.99
            aload 0 /* this */
            aload 15 /* allocationSize */
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.shouldAllocateInTLAB:(Ljdk/internal/vm/compiler/word/UnsignedWord;Z)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 13
            ldc 0.99
            aload 16 /* newTop */
            aload 14 /* end */
            invokevirtual org.graalvm.compiler.word.Word.belowOrEqual:(Lorg/graalvm/compiler/word/Word;)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 13
         7: .line 97
            aload 0 /* this */
            aload 12 /* thread */
            aload 16 /* newTop */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.writeTlabTop:(Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;)V
         8: .line 98
            aload 0 /* this */
            aload 16 /* newTop */
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.emitPrefetchAllocate:(Lorg/graalvm/compiler/word/Word;Z)V
         9: .line 99
            aload 0 /* this */
            aload 1 /* hub */
            aload 2 /* prototypeMarkWord */
            aload 15 /* allocationSize */
            iload 3 /* length */
            aload 13 /* top */
            iload 6 /* fillContents */
            iload 7 /* fillStartOffset */
            iload 8 /* emitMemoryBarrier */
            iload 9 /* maybeUnroll */
            iload 10 /* supportsBulkZeroing */
        10: .line 100
            aload 11 /* profilingData */
            getfield org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData.snippetCounters:Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;
        11: .line 99
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.formatArray:(Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Ljdk/internal/vm/compiler/word/UnsignedWord;ILorg/graalvm/compiler/word/Word;ZIZZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)Ljava/lang/Object;
            astore 17 /* result */
        start local 17 // java.lang.Object result
        12: .line 101
            goto 15
        end local 17 // java.lang.Object result
        13: .line 102
      StackMap locals: org.graalvm.compiler.replacements.AllocationSnippets org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int int int int int int int int org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word jdk.internal.vm.compiler.word.UnsignedWord org.graalvm.compiler.word.Word
      StackMap stack:
            aload 11 /* profilingData */
            getfield org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData.snippetCounters:Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;
            getfield org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters.stub:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        14: .line 103
            aload 0 /* this */
            aload 1 /* hub */
            iload 3 /* length */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.callNewArrayStub:(Lorg/graalvm/compiler/word/Word;I)Ljava/lang/Object;
            astore 17 /* result */
        start local 17 // java.lang.Object result
        15: .line 105
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 11 /* profilingData */
            aload 15 /* allocationSize */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.profileAllocation:(Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationProfilingData;Ljdk/internal/vm/compiler/word/UnsignedWord;)V
        16: .line 106
            aload 0 /* this */
            aload 17 /* result */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.verifyOop:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 17 // java.lang.Object result
        end local 16 // org.graalvm.compiler.word.Word newTop
        end local 15 // jdk.internal.vm.compiler.word.UnsignedWord allocationSize
        end local 14 // org.graalvm.compiler.word.Word end
        end local 13 // org.graalvm.compiler.word.Word top
        end local 12 // org.graalvm.compiler.word.Word thread
        end local 11 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData profilingData
        end local 10 // boolean supportsBulkZeroing
        end local 9 // boolean maybeUnroll
        end local 8 // boolean emitMemoryBarrier
        end local 7 // int fillStartOffset
        end local 6 // boolean fillContents
        end local 5 // int log2ElementSize
        end local 4 // int headerSize
        end local 3 // int length
        end local 2 // org.graalvm.compiler.word.Word prototypeMarkWord
        end local 1 // org.graalvm.compiler.word.Word hub
        end local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   17     0                 this  Lorg/graalvm/compiler/replacements/AllocationSnippets;
            0   17     1                  hub  Lorg/graalvm/compiler/word/Word;
            0   17     2    prototypeMarkWord  Lorg/graalvm/compiler/word/Word;
            0   17     3               length  I
            0   17     4           headerSize  I
            0   17     5      log2ElementSize  I
            0   17     6         fillContents  Z
            0   17     7      fillStartOffset  I
            0   17     8    emitMemoryBarrier  Z
            0   17     9          maybeUnroll  Z
            0   17    10  supportsBulkZeroing  Z
            0   17    11        profilingData  Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationProfilingData;
            1   17    12               thread  Lorg/graalvm/compiler/word/Word;
            2   17    13                  top  Lorg/graalvm/compiler/word/Word;
            3   17    14                  end  Lorg/graalvm/compiler/word/Word;
            5   17    15       allocationSize  Ljdk/internal/vm/compiler/word/UnsignedWord;
            6   17    16               newTop  Lorg/graalvm/compiler/word/Word;
           12   13    17               result  Ljava/lang/Object;
           15   17    17               result  Ljava/lang/Object;
    MethodParameters:
                     Name  Flags
      hub                  
      prototypeMarkWord    
      length               
      headerSize           
      log2ElementSize      
      fillContents         
      fillStartOffset      
      emitMemoryBarrier    
      maybeUnroll          
      supportsBulkZeroing  
      profilingData        

  protected java.lang.Object newMultiArrayImpl(org.graalvm.compiler.word.Word, int, int[]);
    descriptor: (Lorg/graalvm/compiler/word/Word;I[I)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
        start local 1 // org.graalvm.compiler.word.Word hub
        start local 2 // int rank
        start local 3 // int[] dimensions
         0: .line 110
            iload 2 /* rank */
            invokestatic org.graalvm.compiler.replacements.DimensionsNode.allocaDimsArray:(I)Lorg/graalvm/compiler/word/Word;
            astore 4 /* dims */
        start local 4 // org.graalvm.compiler.word.Word dims
         1: .line 111
            invokestatic org.graalvm.compiler.replacements.nodes.ExplodeLoopNode.explodeLoop:()V
         2: .line 112
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 6
         4: .line 113
      StackMap locals: org.graalvm.compiler.word.Word int
      StackMap stack:
            aload 4 /* dims */
            iload 5 /* i */
            iconst_4
            imul
            aload 3 /* dimensions */
            iload 5 /* i */
            iaload
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.init:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeInt:(IILjdk/internal/vm/compiler/word/LocationIdentity;)V
         5: .line 112
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* i */
            iload 2 /* rank */
            if_icmplt 4
        end local 5 // int i
         7: .line 115
            aload 0 /* this */
            aload 1 /* hub */
            iload 2 /* rank */
            aload 4 /* dims */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.callNewMultiArrayStub:(Lorg/graalvm/compiler/word/Word;ILorg/graalvm/compiler/word/Word;)Ljava/lang/Object;
            areturn
        end local 4 // org.graalvm.compiler.word.Word dims
        end local 3 // int[] dimensions
        end local 2 // int rank
        end local 1 // org.graalvm.compiler.word.Word hub
        end local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/graalvm/compiler/replacements/AllocationSnippets;
            0    8     1         hub  Lorg/graalvm/compiler/word/Word;
            0    8     2        rank  I
            0    8     3  dimensions  [I
            1    8     4        dims  Lorg/graalvm/compiler/word/Word;
            3    7     5           i  I
    MethodParameters:
            Name  Flags
      hub         
      rank        
      dimensions  

  private jdk.internal.vm.compiler.word.UnsignedWord arrayAllocationSize(int, int, int);
    descriptor: (III)Ljdk/internal/vm/compiler/word/UnsignedWord;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
        start local 1 // int length
        start local 2 // int headerSize
        start local 3 // int log2ElementSize
         0: .line 119
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.objectAlignment:()I
            istore 4 /* alignment */
        start local 4 // int alignment
         1: .line 120
            iload 1 /* length */
            iload 2 /* headerSize */
            iload 3 /* log2ElementSize */
            iload 4 /* alignment */
            invokestatic org.graalvm.compiler.replacements.AllocationSnippets.arrayAllocationSize:(IIII)J
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            areturn
        end local 4 // int alignment
        end local 3 // int log2ElementSize
        end local 2 // int headerSize
        end local 1 // int length
        end local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/graalvm/compiler/replacements/AllocationSnippets;
            0    2     1           length  I
            0    2     2       headerSize  I
            0    2     3  log2ElementSize  I
            1    2     4        alignment  I
    MethodParameters:
                 Name  Flags
      length           
      headerSize       
      log2ElementSize  

  public static long arrayAllocationSize(int, int, int, int);
    descriptor: (IIII)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // int length
        start local 1 // int headerSize
        start local 2 // int log2ElementSize
        start local 3 // int alignment
         0: .line 128
            iload 0 /* length */
            i2l
            ldc 4294967295
            land
            iload 2 /* log2ElementSize */
            lshl
            iload 1 /* headerSize */
            i2l
            ladd
            iload 3 /* alignment */
            iconst_1
            isub
            i2l
            ladd
            lstore 4 /* size */
        start local 4 // long size
         1: .line 129
            iload 3 /* alignment */
            iconst_1
            isub
            iconst_m1
            ixor
            i2l
            lstore 6 /* mask */
        start local 6 // long mask
         2: .line 130
            lload 4 /* size */
            lload 6 /* mask */
            land
            lstore 8 /* result */
        start local 8 // long result
         3: .line 131
            lload 8 /* result */
            lreturn
        end local 8 // long result
        end local 6 // long mask
        end local 4 // long size
        end local 3 // int alignment
        end local 2 // int log2ElementSize
        end local 1 // int headerSize
        end local 0 // int length
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0           length  I
            0    4     1       headerSize  I
            0    4     2  log2ElementSize  I
            0    4     3        alignment  I
            1    4     4             size  J
            2    4     6             mask  J
            3    4     8           result  J
    MethodParameters:
                 Name  Flags
      length           
      headerSize       
      log2ElementSize  
      alignment        

  private void zeroMemory(org.graalvm.compiler.word.Word, int, jdk.internal.vm.compiler.word.UnsignedWord, boolean, boolean, boolean, org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters);
    descriptor: (Lorg/graalvm/compiler/word/Word;ILjdk/internal/vm/compiler/word/UnsignedWord;ZZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=8, args_size=8
        start local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
        start local 1 // org.graalvm.compiler.word.Word memory
        start local 2 // int startOffset
        start local 3 // jdk.internal.vm.compiler.word.UnsignedWord endOffset
        start local 4 // boolean isEndOffsetConstant
        start local 5 // boolean manualUnroll
        start local 6 // boolean supportsBulkZeroing
        start local 7 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters snippetCounters
         0: .line 158
            aload 0 /* this */
            lconst_0
            aload 1 /* memory */
            iload 2 /* startOffset */
            aload 3 /* endOffset */
            iload 4 /* isEndOffsetConstant */
            iload 5 /* manualUnroll */
            iload 6 /* supportsBulkZeroing */
            aload 7 /* snippetCounters */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.fillMemory:(JLorg/graalvm/compiler/word/Word;ILjdk/internal/vm/compiler/word/UnsignedWord;ZZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)V
         1: .line 159
            return
        end local 7 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters snippetCounters
        end local 6 // boolean supportsBulkZeroing
        end local 5 // boolean manualUnroll
        end local 4 // boolean isEndOffsetConstant
        end local 3 // jdk.internal.vm.compiler.word.UnsignedWord endOffset
        end local 2 // int startOffset
        end local 1 // org.graalvm.compiler.word.Word memory
        end local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/graalvm/compiler/replacements/AllocationSnippets;
            0    2     1               memory  Lorg/graalvm/compiler/word/Word;
            0    2     2          startOffset  I
            0    2     3            endOffset  Ljdk/internal/vm/compiler/word/UnsignedWord;
            0    2     4  isEndOffsetConstant  Z
            0    2     5         manualUnroll  Z
            0    2     6  supportsBulkZeroing  Z
            0    2     7      snippetCounters  Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;
    MethodParameters:
                     Name  Flags
      memory               
      startOffset          
      endOffset            
      isEndOffsetConstant  
      manualUnroll         
      supportsBulkZeroing  
      snippetCounters      

  private void fillMemory(long, org.graalvm.compiler.word.Word, int, jdk.internal.vm.compiler.word.UnsignedWord, boolean, boolean, boolean, org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters);
    descriptor: (JLorg/graalvm/compiler/word/Word;ILjdk/internal/vm/compiler/word/UnsignedWord;ZZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=9
        start local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
        start local 1 // long value
        start local 3 // org.graalvm.compiler.word.Word memory
        start local 4 // int startOffset
        start local 5 // jdk.internal.vm.compiler.word.UnsignedWord endOffset
        start local 6 // boolean isEndOffsetConstant
        start local 7 // boolean manualUnroll
        start local 8 // boolean supportsBulkZeroing
        start local 9 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters snippetCounters
         0: .line 169
            aload 5 /* endOffset */
            bipush 7
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.and:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            iconst_0
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.equal:(I)Z
            ldc "unaligned object size"
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.dynamicAssert:(ZLjava/lang/String;)V
         1: .line 170
            iload 4 /* startOffset */
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            astore 10 /* offset */
        start local 10 // jdk.internal.vm.compiler.word.UnsignedWord offset
         2: .line 171
            aload 10 /* offset */
            bipush 7
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.and:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            iconst_0
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.notEqual:(I)Z
            ifeq 5
         3: .line 172
            aload 3 /* memory */
            aload 10 /* offset */
            lload 1 /* value */
            l2i
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.init:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeInt:(Ljdk/internal/vm/compiler/word/WordBase;ILjdk/internal/vm/compiler/word/LocationIdentity;)V
         4: .line 173
            aload 10 /* offset */
            iconst_4
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.add:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            astore 10 /* offset */
         5: .line 175
      StackMap locals: jdk.internal.vm.compiler.word.UnsignedWord
      StackMap stack:
            aload 10 /* offset */
            bipush 7
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.and:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            iconst_0
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.equal:(I)Z
            ldc "unaligned offset"
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.dynamicAssert:(ZLjava/lang/String;)V
         6: .line 176
            aload 5 /* endOffset */
            aload 10 /* offset */
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.subtract:(Ljdk/internal/vm/compiler/word/UnsignedWord;)Ljdk/internal/vm/compiler/word/UnsignedWord;
            astore 11 /* remainingSize */
        start local 11 // jdk.internal.vm.compiler.word.UnsignedWord remainingSize
         7: .line 177
            iload 7 /* manualUnroll */
            ifeq 21
            aload 11 /* remainingSize */
            bipush 8
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.unsignedDivide:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            bipush 8
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.belowOrEqual:(I)Z
            ifeq 21
         8: .line 178
            iload 6 /* isEndOffsetConstant */
            ifeq 9
            iconst_0
            goto 10
      StackMap locals: jdk.internal.vm.compiler.word.UnsignedWord
      StackMap stack:
         9: iconst_1
      StackMap locals:
      StackMap stack: int
        10: ldc "size shouldn't be constant at instantiation time"
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.staticAssert:(ZLjava/lang/String;)V
        11: .line 182
            aload 9 /* snippetCounters */
            getfield org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters.unrolledInit:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        12: .line 184
            invokestatic org.graalvm.compiler.replacements.nodes.ExplodeLoopNode.explodeLoop:()V
        13: .line 185
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        14: goto 19
        15: .line 186
      StackMap locals: int
      StackMap stack:
            aload 10 /* offset */
            aload 5 /* endOffset */
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.equal:(Ljdk/internal/vm/compiler/word/UnsignedWord;)Z
            ifeq 17
        16: .line 187
            goto 34
        17: .line 189
      StackMap locals:
      StackMap stack:
            aload 3 /* memory */
            aload 10 /* offset */
            lload 1 /* value */
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.init:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.initializeLong:(Ljdk/internal/vm/compiler/word/WordBase;JLjdk/internal/vm/compiler/word/LocationIdentity;)V
        18: .line 185
            iinc 12 /* i */ 1
            aload 10 /* offset */
            bipush 8
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.add:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            astore 10 /* offset */
      StackMap locals:
      StackMap stack:
        19: iload 12 /* i */
            bipush 8
            if_icmplt 15
        end local 12 // int i
        20: .line 191
            goto 34
        21: .line 192
      StackMap locals:
      StackMap stack:
            iload 8 /* supportsBulkZeroing */
            ifeq 25
            lload 1 /* value */
            lconst_0
            lcmp
            ifne 25
            ldc 0.010000000000000009
            aload 11 /* remainingSize */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.getMinimalBulkZeroingSize:()I
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.aboveOrEqual:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 25
        22: .line 193
            aload 9 /* snippetCounters */
            getfield org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters.bulkInit:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        23: .line 194
            aload 3 /* memory */
            aload 10 /* offset */
            invokevirtual org.graalvm.compiler.word.Word.add:(Ljdk/internal/vm/compiler/word/UnsignedWord;)Lorg/graalvm/compiler/word/Word;
            aload 11 /* remainingSize */
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.rawValue:()J
            iconst_1
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.init:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.replacements.nodes.ZeroMemoryNode.zero:(Lorg/graalvm/compiler/word/Word;JZLjdk/internal/vm/compiler/word/LocationIdentity;)V
        24: .line 195
            goto 34
        25: .line 196
      StackMap locals:
      StackMap stack:
            iload 6 /* isEndOffsetConstant */
            ifeq 29
            aload 11 /* remainingSize */
            bipush 8
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.unsignedDivide:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            bipush 8
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.belowOrEqual:(I)Z
            ifeq 29
        26: .line 197
            aload 9 /* snippetCounters */
            getfield org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters.unrolledInit:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        27: .line 198
            invokestatic org.graalvm.compiler.replacements.nodes.ExplodeLoopNode.explodeLoop:()V
        28: .line 199
            goto 33
        29: .line 200
      StackMap locals:
      StackMap stack:
            aload 9 /* snippetCounters */
            getfield org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters.loopInit:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        30: .line 202
            goto 33
        31: .line 203
      StackMap locals:
      StackMap stack:
            aload 3 /* memory */
            aload 10 /* offset */
            lload 1 /* value */
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.init:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.initializeLong:(Ljdk/internal/vm/compiler/word/WordBase;JLjdk/internal/vm/compiler/word/LocationIdentity;)V
        32: .line 202
            aload 10 /* offset */
            bipush 8
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.add:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            astore 10 /* offset */
      StackMap locals:
      StackMap stack:
        33: aload 10 /* offset */
            aload 5 /* endOffset */
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.belowThan:(Ljdk/internal/vm/compiler/word/UnsignedWord;)Z
            ifne 31
        34: .line 207
      StackMap locals:
      StackMap stack:
            return
        end local 11 // jdk.internal.vm.compiler.word.UnsignedWord remainingSize
        end local 10 // jdk.internal.vm.compiler.word.UnsignedWord offset
        end local 9 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters snippetCounters
        end local 8 // boolean supportsBulkZeroing
        end local 7 // boolean manualUnroll
        end local 6 // boolean isEndOffsetConstant
        end local 5 // jdk.internal.vm.compiler.word.UnsignedWord endOffset
        end local 4 // int startOffset
        end local 3 // org.graalvm.compiler.word.Word memory
        end local 1 // long value
        end local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   35     0                 this  Lorg/graalvm/compiler/replacements/AllocationSnippets;
            0   35     1                value  J
            0   35     3               memory  Lorg/graalvm/compiler/word/Word;
            0   35     4          startOffset  I
            0   35     5            endOffset  Ljdk/internal/vm/compiler/word/UnsignedWord;
            0   35     6  isEndOffsetConstant  Z
            0   35     7         manualUnroll  Z
            0   35     8  supportsBulkZeroing  Z
            0   35     9      snippetCounters  Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;
            2   35    10               offset  Ljdk/internal/vm/compiler/word/UnsignedWord;
            7   35    11        remainingSize  Ljdk/internal/vm/compiler/word/UnsignedWord;
           14   20    12                    i  I
    MethodParameters:
                     Name  Flags
      value                
      memory               
      startOffset          
      endOffset            
      isEndOffsetConstant  
      manualUnroll         
      supportsBulkZeroing  
      snippetCounters      

  private void fillWithGarbage(org.graalvm.compiler.word.Word, int, jdk.internal.vm.compiler.word.UnsignedWord, boolean, boolean, org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters);
    descriptor: (Lorg/graalvm/compiler/word/Word;ILjdk/internal/vm/compiler/word/UnsignedWord;ZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
        start local 1 // org.graalvm.compiler.word.Word memory
        start local 2 // int startOffset
        start local 3 // jdk.internal.vm.compiler.word.UnsignedWord endOffset
        start local 4 // boolean isEndOffsetConstant
        start local 5 // boolean manualUnroll
        start local 6 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters snippetCounters
         0: .line 226
            aload 0 /* this */
            ldc -72340172838076674
            aload 1 /* memory */
            iload 2 /* startOffset */
            aload 3 /* endOffset */
            iload 4 /* isEndOffsetConstant */
            iload 5 /* manualUnroll */
            iconst_0
            aload 6 /* snippetCounters */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.fillMemory:(JLorg/graalvm/compiler/word/Word;ILjdk/internal/vm/compiler/word/UnsignedWord;ZZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)V
         1: .line 227
            return
        end local 6 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters snippetCounters
        end local 5 // boolean manualUnroll
        end local 4 // boolean isEndOffsetConstant
        end local 3 // jdk.internal.vm.compiler.word.UnsignedWord endOffset
        end local 2 // int startOffset
        end local 1 // org.graalvm.compiler.word.Word memory
        end local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/graalvm/compiler/replacements/AllocationSnippets;
            0    2     1               memory  Lorg/graalvm/compiler/word/Word;
            0    2     2          startOffset  I
            0    2     3            endOffset  Ljdk/internal/vm/compiler/word/UnsignedWord;
            0    2     4  isEndOffsetConstant  Z
            0    2     5         manualUnroll  Z
            0    2     6      snippetCounters  Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;
    MethodParameters:
                     Name  Flags
      memory               
      startOffset          
      endOffset            
      isEndOffsetConstant  
      manualUnroll         
      snippetCounters      

  protected java.lang.Object formatObject(org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, jdk.internal.vm.compiler.word.UnsignedWord, org.graalvm.compiler.word.Word, boolean, boolean, boolean, org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters);
    descriptor: (Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Ljdk/internal/vm/compiler/word/UnsignedWord;Lorg/graalvm/compiler/word/Word;ZZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=10, args_size=9
        start local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
        start local 1 // org.graalvm.compiler.word.Word hub
        start local 2 // org.graalvm.compiler.word.Word prototypeMarkWord
        start local 3 // jdk.internal.vm.compiler.word.UnsignedWord size
        start local 4 // org.graalvm.compiler.word.Word memory
        start local 5 // boolean fillContents
        start local 6 // boolean emitMemoryBarrier
        start local 7 // boolean constantSize
        start local 8 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters snippetCounters
         0: .line 240
            aload 0 /* this */
            aload 4 /* memory */
            aload 1 /* hub */
            aload 2 /* prototypeMarkWord */
            iconst_0
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.initializeObjectHeader:(Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Z)V
         1: .line 241
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.instanceHeaderSize:()I
            istore 9 /* headerSize */
        start local 9 // int headerSize
         2: .line 242
            iload 5 /* fillContents */
            ifeq 5
         3: .line 243
            aload 0 /* this */
            aload 4 /* memory */
            iload 9 /* headerSize */
            aload 3 /* size */
            iload 7 /* constantSize */
            iconst_0
            iconst_0
            aload 8 /* snippetCounters */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.zeroMemory:(Lorg/graalvm/compiler/word/Word;ILjdk/internal/vm/compiler/word/UnsignedWord;ZZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)V
         4: .line 244
            goto 7
      StackMap locals: int
      StackMap stack:
         5: getstatic org.graalvm.compiler.replacements.ReplacementsUtil.REPLACEMENTS_ASSERTIONS_ENABLED:Z
            ifeq 7
         6: .line 245
            aload 0 /* this */
            aload 4 /* memory */
            iload 9 /* headerSize */
            aload 3 /* size */
            iload 7 /* constantSize */
            iconst_0
            aload 8 /* snippetCounters */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.fillWithGarbage:(Lorg/graalvm/compiler/word/Word;ILjdk/internal/vm/compiler/word/UnsignedWord;ZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)V
         7: .line 247
      StackMap locals:
      StackMap stack:
            iload 6 /* emitMemoryBarrier */
            ifeq 9
         8: .line 248
            bipush 8
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.init:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.MembarNode.memoryBarrier:(ILjdk/internal/vm/compiler/word/LocationIdentity;)V
         9: .line 250
      StackMap locals:
      StackMap stack:
            aload 4 /* memory */
            invokevirtual org.graalvm.compiler.word.Word.toObjectNonNull:()Ljava/lang/Object;
            areturn
        end local 9 // int headerSize
        end local 8 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters snippetCounters
        end local 7 // boolean constantSize
        end local 6 // boolean emitMemoryBarrier
        end local 5 // boolean fillContents
        end local 4 // org.graalvm.compiler.word.Word memory
        end local 3 // jdk.internal.vm.compiler.word.UnsignedWord size
        end local 2 // org.graalvm.compiler.word.Word prototypeMarkWord
        end local 1 // org.graalvm.compiler.word.Word hub
        end local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lorg/graalvm/compiler/replacements/AllocationSnippets;
            0   10     1                hub  Lorg/graalvm/compiler/word/Word;
            0   10     2  prototypeMarkWord  Lorg/graalvm/compiler/word/Word;
            0   10     3               size  Ljdk/internal/vm/compiler/word/UnsignedWord;
            0   10     4             memory  Lorg/graalvm/compiler/word/Word;
            0   10     5       fillContents  Z
            0   10     6  emitMemoryBarrier  Z
            0   10     7       constantSize  Z
            0   10     8    snippetCounters  Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;
            2   10     9         headerSize  I
    MethodParameters:
                   Name  Flags
      hub                
      prototypeMarkWord  
      size               
      memory             
      fillContents       
      emitMemoryBarrier  
      constantSize       
      snippetCounters    

  protected java.lang.Object formatArray(org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, jdk.internal.vm.compiler.word.UnsignedWord, int, org.graalvm.compiler.word.Word, boolean, int, boolean, boolean, boolean, org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters);
    descriptor: (Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Ljdk/internal/vm/compiler/word/UnsignedWord;ILorg/graalvm/compiler/word/Word;ZIZZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=12, args_size=12
        start local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
        start local 1 // org.graalvm.compiler.word.Word hub
        start local 2 // org.graalvm.compiler.word.Word prototypeMarkWord
        start local 3 // jdk.internal.vm.compiler.word.UnsignedWord allocationSize
        start local 4 // int length
        start local 5 // org.graalvm.compiler.word.Word memory
        start local 6 // boolean fillContents
        start local 7 // int fillStartOffset
        start local 8 // boolean emitMemoryBarrier
        start local 9 // boolean maybeUnroll
        start local 10 // boolean supportsBulkZeroing
        start local 11 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters snippetCounters
         0: .line 267
            aload 5 /* memory */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.arrayLengthOffset:()I
            iload 4 /* length */
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.init:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeInt:(IILjdk/internal/vm/compiler/word/LocationIdentity;)V
         1: .line 270
            aload 0 /* this */
            aload 5 /* memory */
            aload 1 /* hub */
            aload 2 /* prototypeMarkWord */
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.initializeObjectHeader:(Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Z)V
         2: .line 271
            iload 6 /* fillContents */
            ifeq 5
         3: .line 272
            aload 0 /* this */
            aload 5 /* memory */
            iload 7 /* fillStartOffset */
            aload 3 /* allocationSize */
            iconst_0
            iload 9 /* maybeUnroll */
            iload 10 /* supportsBulkZeroing */
            aload 11 /* snippetCounters */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.zeroMemory:(Lorg/graalvm/compiler/word/Word;ILjdk/internal/vm/compiler/word/UnsignedWord;ZZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)V
         4: .line 273
            goto 7
      StackMap locals:
      StackMap stack:
         5: getstatic org.graalvm.compiler.replacements.ReplacementsUtil.REPLACEMENTS_ASSERTIONS_ENABLED:Z
            ifeq 7
         6: .line 274
            aload 0 /* this */
            aload 5 /* memory */
            iload 7 /* fillStartOffset */
            aload 3 /* allocationSize */
            iconst_0
            iload 9 /* maybeUnroll */
            aload 11 /* snippetCounters */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.fillWithGarbage:(Lorg/graalvm/compiler/word/Word;ILjdk/internal/vm/compiler/word/UnsignedWord;ZZLorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;)V
         7: .line 276
      StackMap locals:
      StackMap stack:
            iload 8 /* emitMemoryBarrier */
            ifeq 9
         8: .line 277
            bipush 8
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.init:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.MembarNode.memoryBarrier:(ILjdk/internal/vm/compiler/word/LocationIdentity;)V
         9: .line 279
      StackMap locals:
      StackMap stack:
            aload 5 /* memory */
            invokevirtual org.graalvm.compiler.word.Word.toObjectNonNull:()Ljava/lang/Object;
            areturn
        end local 11 // org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters snippetCounters
        end local 10 // boolean supportsBulkZeroing
        end local 9 // boolean maybeUnroll
        end local 8 // boolean emitMemoryBarrier
        end local 7 // int fillStartOffset
        end local 6 // boolean fillContents
        end local 5 // org.graalvm.compiler.word.Word memory
        end local 4 // int length
        end local 3 // jdk.internal.vm.compiler.word.UnsignedWord allocationSize
        end local 2 // org.graalvm.compiler.word.Word prototypeMarkWord
        end local 1 // org.graalvm.compiler.word.Word hub
        end local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0                 this  Lorg/graalvm/compiler/replacements/AllocationSnippets;
            0   10     1                  hub  Lorg/graalvm/compiler/word/Word;
            0   10     2    prototypeMarkWord  Lorg/graalvm/compiler/word/Word;
            0   10     3       allocationSize  Ljdk/internal/vm/compiler/word/UnsignedWord;
            0   10     4               length  I
            0   10     5               memory  Lorg/graalvm/compiler/word/Word;
            0   10     6         fillContents  Z
            0   10     7      fillStartOffset  I
            0   10     8    emitMemoryBarrier  Z
            0   10     9          maybeUnroll  Z
            0   10    10  supportsBulkZeroing  Z
            0   10    11      snippetCounters  Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationSnippetCounters;
    MethodParameters:
                     Name  Flags
      hub                  
      prototypeMarkWord    
      allocationSize       
      length               
      memory               
      fillContents         
      fillStartOffset      
      emitMemoryBarrier    
      maybeUnroll          
      supportsBulkZeroing  
      snippetCounters      

  protected void emitPrefetchAllocate(org.graalvm.compiler.word.Word, boolean);
    descriptor: (Lorg/graalvm/compiler/word/Word;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
        start local 1 // org.graalvm.compiler.word.Word address
        start local 2 // boolean isArray
         0: .line 283
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.getPrefetchStyle:()I
            ifle 11
         1: .line 286
            aload 0 /* this */
            iload 2 /* isArray */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.getPrefetchLines:(Z)I
            istore 3 /* lines */
        start local 3 // int lines
         2: .line 287
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.getPrefetchStepSize:()I
            istore 4 /* stepSize */
        start local 4 // int stepSize
         3: .line 288
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.AllocationSnippets.getPrefetchDistance:()I
            istore 5 /* distance */
        start local 5 // int distance
         4: .line 289
            invokestatic org.graalvm.compiler.replacements.nodes.ExplodeLoopNode.explodeLoop:()V
         5: .line 290
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 10
         7: .line 291
      StackMap locals: org.graalvm.compiler.replacements.AllocationSnippets org.graalvm.compiler.word.Word int int int int int
      StackMap stack:
            aload 1 /* address */
            iload 5 /* distance */
            i2l
            invokestatic org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.address:(Ljava/lang/Object;J)Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;
            invokestatic org.graalvm.compiler.nodes.PrefetchAllocateNode.prefetch:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;)V
         8: .line 292
            iload 5 /* distance */
            iload 4 /* stepSize */
            iadd
            istore 5 /* distance */
         9: .line 290
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            iload 3 /* lines */
            if_icmplt 7
        end local 6 // int i
        end local 5 // int distance
        end local 4 // int stepSize
        end local 3 // int lines
        11: .line 295
      StackMap locals: org.graalvm.compiler.replacements.AllocationSnippets org.graalvm.compiler.word.Word int
      StackMap stack:
            return
        end local 2 // boolean isArray
        end local 1 // org.graalvm.compiler.word.Word address
        end local 0 // org.graalvm.compiler.replacements.AllocationSnippets this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lorg/graalvm/compiler/replacements/AllocationSnippets;
            0   12     1   address  Lorg/graalvm/compiler/word/Word;
            0   12     2   isArray  Z
            2   11     3     lines  I
            3   11     4  stepSize  I
            4   11     5  distance  I
            6   11     6         i  I
    MethodParameters:
         Name  Flags
      address  
      isArray  

  protected abstract int getPrefetchStyle();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int getPrefetchLines(boolean);
    descriptor: (Z)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      isArray  

  protected abstract int getPrefetchStepSize();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int getPrefetchDistance();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract boolean useTLAB();
    descriptor: ()Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract boolean shouldAllocateInTLAB(jdk.internal.vm.compiler.word.UnsignedWord, boolean);
    descriptor: (Ljdk/internal/vm/compiler/word/UnsignedWord;Z)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                Name  Flags
      allocationSize  
      isArray         

  protected abstract org.graalvm.compiler.word.Word getTLABInfo();
    descriptor: ()Lorg/graalvm/compiler/word/Word;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract org.graalvm.compiler.word.Word readTlabTop(org.graalvm.compiler.word.Word);
    descriptor: (Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      tlabInfo  

  protected abstract org.graalvm.compiler.word.Word readTlabEnd(org.graalvm.compiler.word.Word);
    descriptor: (Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      tlabInfo  

  protected abstract void writeTlabTop(org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word);
    descriptor: (Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      tlabInfo  
      newTop    

  protected abstract int instanceHeaderSize();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract void initializeObjectHeader(org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, boolean);
    descriptor: (Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Z)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                   Name  Flags
      memory             
      hub                
      prototypeMarkWord  
      isArray            

  protected abstract java.lang.Object callNewInstanceStub(org.graalvm.compiler.word.Word);
    descriptor: (Lorg/graalvm/compiler/word/Word;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      hub   

  protected abstract java.lang.Object callNewArrayStub(org.graalvm.compiler.word.Word, int);
    descriptor: (Lorg/graalvm/compiler/word/Word;I)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      hub     
      length  

  protected abstract java.lang.Object callNewMultiArrayStub(org.graalvm.compiler.word.Word, int, org.graalvm.compiler.word.Word);
    descriptor: (Lorg/graalvm/compiler/word/Word;ILorg/graalvm/compiler/word/Word;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      hub   
      rank  
      dims  

  protected abstract int getMinimalBulkZeroingSize();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract void profileAllocation(org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData, jdk.internal.vm.compiler.word.UnsignedWord);
    descriptor: (Lorg/graalvm/compiler/replacements/AllocationSnippets$AllocationProfilingData;Ljdk/internal/vm/compiler/word/UnsignedWord;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
               Name  Flags
      profilingData  
      size           

  protected abstract java.lang.Object verifyOop(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      obj   

  protected abstract int arrayLengthOffset();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int objectAlignment();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
}
SourceFile: "AllocationSnippets.java"
NestMembers:
  org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData  org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters
InnerClasses:
  public abstract Address = org.graalvm.compiler.nodes.memory.address.AddressNode$Address of org.graalvm.compiler.nodes.memory.address.AddressNode
  public AllocationProfilingData = org.graalvm.compiler.replacements.AllocationSnippets$AllocationProfilingData of org.graalvm.compiler.replacements.AllocationSnippets
  protected AllocationSnippetCounters = org.graalvm.compiler.replacements.AllocationSnippets$AllocationSnippetCounters of org.graalvm.compiler.replacements.AllocationSnippets