public abstract class org.graalvm.compiler.replacements.DefaultJavaLoweringProvider implements org.graalvm.compiler.nodes.spi.LoweringProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider
  super_class: java.lang.Object
{
  protected final jdk.vm.ci.meta.MetaAccessProvider metaAccess;
    descriptor: Ljdk/vm/ci/meta/MetaAccessProvider;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.graalvm.compiler.core.common.spi.ForeignCallsProvider foreignCalls;
    descriptor: Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final jdk.vm.ci.code.TargetDescription target;
    descriptor: Ljdk/vm/ci/code/TargetDescription;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

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

  private final jdk.vm.ci.meta.ResolvedJavaType objectArrayType;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.word.WordTypes wordTypes;
    descriptor: Lorg/graalvm/compiler/word/WordTypes;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.graalvm.compiler.replacements.BoxingSnippets$Templates boxingSnippets;
    descriptor: Lorg/graalvm/compiler/replacements/BoxingSnippets$Templates;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets$Templates indexOfSnippets;
    descriptor: Lorg/graalvm/compiler/replacements/ConstantStringIndexOfSnippets$Templates;
    flags: (0x0002) ACC_PRIVATE

  public static final org.graalvm.compiler.core.common.type.IntegerStamp POSITIVE_ARRAY_INDEX_STAMP;
    descriptor: Lorg/graalvm/compiler/core/common/type/IntegerStamp;
    flags: (0x0019) ACC_PUBLIC, 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=5, locals=0, args_size=0
         0: .line 162
            ldc Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            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 org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
         3: .line 427
            bipush 32
            lconst_0
            ldc 2147483646
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forInteger:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
            putstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.POSITIVE_ARRAY_INDEX_STAMP:Lorg/graalvm/compiler/core/common/type/IntegerStamp;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.core.common.spi.ForeignCallsProvider, jdk.vm.ci.code.TargetDescription, boolean);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Ljdk/vm/ci/code/TargetDescription;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 2 // org.graalvm.compiler.core.common.spi.ForeignCallsProvider foreignCalls
        start local 3 // jdk.vm.ci.code.TargetDescription target
        start local 4 // boolean useCompressedOops
         0: .line 174
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 175
            aload 0 /* this */
            aload 1 /* metaAccess */
            putfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
         2: .line 176
            aload 0 /* this */
            aload 2 /* foreignCalls */
            putfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.foreignCalls:Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;
         3: .line 177
            aload 0 /* this */
            aload 3 /* target */
            putfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.target:Ljdk/vm/ci/code/TargetDescription;
         4: .line 178
            aload 0 /* this */
            iload 4 /* useCompressedOops */
            putfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.useCompressedOops:Z
         5: .line 179
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc [Ljava/lang/Object;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            putfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.objectArrayType:Ljdk/vm/ci/meta/ResolvedJavaType;
         6: .line 180
            aload 0 /* this */
            new org.graalvm.compiler.word.WordTypes
            dup
            aload 1 /* metaAccess */
            aload 3 /* target */
            getfield jdk.vm.ci.code.TargetDescription.wordJavaKind:Ljdk/vm/ci/meta/JavaKind;
            invokespecial org.graalvm.compiler.word.WordTypes.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)V
            putfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.wordTypes:Lorg/graalvm/compiler/word/WordTypes;
         7: .line 181
            return
        end local 4 // boolean useCompressedOops
        end local 3 // jdk.vm.ci.code.TargetDescription target
        end local 2 // org.graalvm.compiler.core.common.spi.ForeignCallsProvider foreignCalls
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0               this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    8     1         metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0    8     2       foreignCalls  Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;
            0    8     3             target  Ljdk/vm/ci/code/TargetDescription;
            0    8     4  useCompressedOops  Z
    MethodParameters:
                   Name  Flags
      metaAccess         
      foreignCalls       
      target             
      useCompressedOops  

  public void initialize(org.graalvm.compiler.options.OptionValues, java.lang.Iterable<org.graalvm.compiler.debug.DebugHandlersFactory>, org.graalvm.compiler.replacements.SnippetCounter$Group$Factory, org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=6, args_size=6
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.options.OptionValues options
        start local 2 // java.lang.Iterable factories
        start local 3 // org.graalvm.compiler.replacements.SnippetCounter$Group$Factory factory
        start local 4 // org.graalvm.compiler.phases.util.Providers providers
        start local 5 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
         0: .line 184
            aload 0 /* this */
            new org.graalvm.compiler.replacements.BoxingSnippets$Templates
            dup
            aload 1 /* options */
            aload 2 /* factories */
            aload 3 /* factory */
            aload 4 /* providers */
            aload 5 /* snippetReflection */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.target:Ljdk/vm/ci/code/TargetDescription;
            invokespecial org.graalvm.compiler.replacements.BoxingSnippets$Templates.<init>:(Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
            putfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.boxingSnippets:Lorg/graalvm/compiler/replacements/BoxingSnippets$Templates;
         1: .line 185
            aload 0 /* this */
            new org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets$Templates
            dup
            aload 1 /* options */
            aload 2 /* factories */
            aload 4 /* providers */
            aload 5 /* snippetReflection */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.target:Ljdk/vm/ci/code/TargetDescription;
            invokespecial org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets$Templates.<init>:(Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
            putfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.indexOfSnippets:Lorg/graalvm/compiler/replacements/ConstantStringIndexOfSnippets$Templates;
         2: .line 186
            aload 4 /* providers */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getReplacements:()Lorg/graalvm/compiler/nodes/spi/Replacements;
            new org.graalvm.compiler.replacements.SnippetCounterNode$SnippetCounterSnippets$Templates
            dup
            aload 1 /* options */
            aload 2 /* factories */
            aload 4 /* providers */
            aload 5 /* snippetReflection */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.target:Ljdk/vm/ci/code/TargetDescription;
            invokespecial org.graalvm.compiler.replacements.SnippetCounterNode$SnippetCounterSnippets$Templates.<init>:(Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
            invokeinterface org.graalvm.compiler.nodes.spi.Replacements.registerSnippetTemplateCache:(Lorg/graalvm/compiler/api/replacements/SnippetTemplateCache;)V
         3: .line 187
            return
        end local 5 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 4 // org.graalvm.compiler.phases.util.Providers providers
        end local 3 // org.graalvm.compiler.replacements.SnippetCounter$Group$Factory factory
        end local 2 // java.lang.Iterable factories
        end local 1 // org.graalvm.compiler.options.OptionValues options
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1            options  Lorg/graalvm/compiler/options/OptionValues;
            0    4     2          factories  Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;
            0    4     3            factory  Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;
            0    4     4          providers  Lorg/graalvm/compiler/phases/util/Providers;
            0    4     5  snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
    Signature: (Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
    MethodParameters:
                   Name  Flags
      options            
      factories          
      factory            
      providers          
      snippetReflection  

  public final jdk.vm.ci.code.TargetDescription getTarget();
    descriptor: ()Ljdk/vm/ci/code/TargetDescription;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
         0: .line 190
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.target:Ljdk/vm/ci/code/TargetDescription;
            areturn
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;

  public jdk.vm.ci.meta.MetaAccessProvider getMetaAccess();
    descriptor: ()Ljdk/vm/ci/meta/MetaAccessProvider;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
         0: .line 194
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            areturn
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;

  public void lower(org.graalvm.compiler.graph.Node, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.graph.Node n
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 200
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 1
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.spi.Lowerable
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 201
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.graph:()Lorg/graalvm/compiler/graph/Graph;
            checkcast org.graalvm.compiler.nodes.StructuredGraph
            astore 3 /* graph */
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         2: .line 202
            aconst_null
            astore 4
            aconst_null
            astore 5
         3: aload 1 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 6 /* context */
        start local 6 // org.graalvm.compiler.debug.DebugCloseable context
         4: .line 203
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.LoadFieldNode
            ifeq 7
         5: .line 204
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.LoadFieldNode
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerLoadFieldNode:(Lorg/graalvm/compiler/nodes/java/LoadFieldNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
         6: .line 205
            goto 89
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack:
         7: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.StoreFieldNode
            ifeq 10
         8: .line 206
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.StoreFieldNode
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerStoreFieldNode:(Lorg/graalvm/compiler/nodes/java/StoreFieldNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
         9: .line 207
            goto 89
      StackMap locals:
      StackMap stack:
        10: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.LoadIndexedNode
            ifeq 13
        11: .line 208
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.LoadIndexedNode
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerLoadIndexedNode:(Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
        12: .line 209
            goto 89
      StackMap locals:
      StackMap stack:
        13: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.StoreIndexedNode
            ifeq 16
        14: .line 210
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.StoreIndexedNode
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerStoreIndexedNode:(Lorg/graalvm/compiler/nodes/java/StoreIndexedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
        15: .line 211
            goto 89
      StackMap locals:
      StackMap stack:
        16: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.memory.address.IndexAddressNode
            ifeq 19
        17: .line 212
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.memory.address.IndexAddressNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerIndexAddressNode:(Lorg/graalvm/compiler/nodes/memory/address/IndexAddressNode;)V
        18: .line 213
            goto 89
      StackMap locals:
      StackMap stack:
        19: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.ArrayLengthNode
            ifeq 22
        20: .line 214
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.ArrayLengthNode
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerArrayLengthNode:(Lorg/graalvm/compiler/nodes/java/ArrayLengthNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
        21: .line 215
            goto 89
      StackMap locals:
      StackMap stack:
        22: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.LoadHubNode
            ifeq 25
        23: .line 216
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.LoadHubNode
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerLoadHubNode:(Lorg/graalvm/compiler/nodes/extended/LoadHubNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
        24: .line 217
            goto 89
      StackMap locals:
      StackMap stack:
        25: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.LoadArrayComponentHubNode
            ifeq 28
        26: .line 218
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.LoadArrayComponentHubNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerLoadArrayComponentHubNode:(Lorg/graalvm/compiler/nodes/extended/LoadArrayComponentHubNode;)V
        27: .line 219
            goto 89
      StackMap locals:
      StackMap stack:
        28: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.MonitorEnterNode
            ifeq 31
        29: .line 220
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.MonitorEnterNode
            aload 2 /* tool */
            aload 3 /* graph */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerMonitorEnterNode:(Lorg/graalvm/compiler/nodes/java/MonitorEnterNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/nodes/StructuredGraph;)V
        30: .line 221
            goto 89
      StackMap locals:
      StackMap stack:
        31: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode
            ifeq 34
        32: .line 222
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerCompareAndSwapNode:(Lorg/graalvm/compiler/nodes/java/UnsafeCompareAndSwapNode;)V
        33: .line 223
            goto 89
      StackMap locals:
      StackMap stack:
        34: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode
            ifeq 37
        35: .line 224
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerCompareAndExchangeNode:(Lorg/graalvm/compiler/nodes/java/UnsafeCompareAndExchangeNode;)V
        36: .line 225
            goto 89
      StackMap locals:
      StackMap stack:
        37: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode
            ifeq 40
        38: .line 226
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerAtomicReadAndWriteNode:(Lorg/graalvm/compiler/nodes/java/AtomicReadAndWriteNode;)V
        39: .line 227
            goto 89
      StackMap locals:
      StackMap stack:
        40: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.RawLoadNode
            ifeq 43
        41: .line 228
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.RawLoadNode
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerUnsafeLoadNode:(Lorg/graalvm/compiler/nodes/extended/RawLoadNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
        42: .line 229
            goto 89
      StackMap locals:
      StackMap stack:
        43: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.UnsafeMemoryLoadNode
            ifeq 46
        44: .line 230
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.UnsafeMemoryLoadNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerUnsafeMemoryLoadNode:(Lorg/graalvm/compiler/nodes/extended/UnsafeMemoryLoadNode;)V
        45: .line 231
            goto 89
      StackMap locals:
      StackMap stack:
        46: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.RawStoreNode
            ifeq 49
        47: .line 232
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.RawStoreNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerUnsafeStoreNode:(Lorg/graalvm/compiler/nodes/extended/RawStoreNode;)V
        48: .line 233
            goto 89
      StackMap locals:
      StackMap stack:
        49: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.UnsafeMemoryStoreNode
            ifeq 52
        50: .line 234
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.UnsafeMemoryStoreNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerUnsafeMemoryStoreNode:(Lorg/graalvm/compiler/nodes/extended/UnsafeMemoryStoreNode;)V
        51: .line 235
            goto 89
      StackMap locals:
      StackMap stack:
        52: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.JavaReadNode
            ifeq 55
        53: .line 236
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.JavaReadNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerJavaReadNode:(Lorg/graalvm/compiler/nodes/extended/JavaReadNode;)V
        54: .line 237
            goto 89
      StackMap locals:
      StackMap stack:
        55: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.JavaWriteNode
            ifeq 58
        56: .line 238
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.JavaWriteNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerJavaWriteNode:(Lorg/graalvm/compiler/nodes/extended/JavaWriteNode;)V
        57: .line 239
            goto 89
      StackMap locals:
      StackMap stack:
        58: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.virtual.CommitAllocationNode
            ifeq 61
        59: .line 240
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.virtual.CommitAllocationNode
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerCommitAllocationNode:(Lorg/graalvm/compiler/nodes/virtual/CommitAllocationNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
        60: .line 241
            goto 89
      StackMap locals:
      StackMap stack:
        61: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.BoxNode
            ifeq 64
        62: .line 242
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.boxingSnippets:Lorg/graalvm/compiler/replacements/BoxingSnippets$Templates;
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.BoxNode
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.BoxingSnippets$Templates.lower:(Lorg/graalvm/compiler/nodes/extended/BoxNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
        63: .line 243
            goto 89
      StackMap locals:
      StackMap stack:
        64: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.UnboxNode
            ifeq 67
        65: .line 244
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.boxingSnippets:Lorg/graalvm/compiler/replacements/BoxingSnippets$Templates;
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.UnboxNode
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.BoxingSnippets$Templates.lower:(Lorg/graalvm/compiler/nodes/extended/UnboxNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
        66: .line 245
            goto 89
      StackMap locals:
      StackMap stack:
        67: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.debug.VerifyHeapNode
            ifeq 70
        68: .line 246
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.debug.VerifyHeapNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerVerifyHeap:(Lorg/graalvm/compiler/nodes/debug/VerifyHeapNode;)V
        69: .line 247
            goto 89
      StackMap locals:
      StackMap stack:
        70: aload 1 /* n */
            instanceof org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode
            ifeq 73
        71: .line 248
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerUnaryMath:(Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
        72: .line 249
            goto 89
      StackMap locals:
      StackMap stack:
        73: aload 1 /* n */
            instanceof org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode
            ifeq 76
        74: .line 250
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerBinaryMath:(Lorg/graalvm/compiler/replacements/nodes/BinaryMathIntrinsicNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
        75: .line 251
            goto 89
      StackMap locals:
      StackMap stack:
        76: aload 1 /* n */
            instanceof org.graalvm.compiler.replacements.StringIndexOfNode
            ifeq 79
        77: .line 252
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.replacements.StringIndexOfNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerIndexOf:(Lorg/graalvm/compiler/replacements/StringIndexOfNode;)V
        78: .line 253
            goto 89
      StackMap locals:
      StackMap stack:
        79: aload 1 /* n */
            instanceof org.graalvm.compiler.replacements.StringLatin1IndexOfNode
            ifeq 82
        80: .line 254
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.replacements.StringLatin1IndexOfNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerLatin1IndexOf:(Lorg/graalvm/compiler/replacements/StringLatin1IndexOfNode;)V
        81: .line 255
            goto 89
      StackMap locals:
      StackMap stack:
        82: aload 1 /* n */
            instanceof org.graalvm.compiler.replacements.StringUTF16IndexOfNode
            ifeq 85
        83: .line 256
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.replacements.StringUTF16IndexOfNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerUTF16IndexOf:(Lorg/graalvm/compiler/replacements/StringUTF16IndexOfNode;)V
        84: .line 257
            goto 89
      StackMap locals:
      StackMap stack:
        85: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.calc.UnpackEndianHalfNode
            ifeq 88
        86: .line 258
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.calc.UnpackEndianHalfNode
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.lowerSecondHalf:(Lorg/graalvm/compiler/nodes/calc/UnpackEndianHalfNode;)V
        87: .line 259
            goto 89
        88: .line 260
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Node implementing Lowerable not handled: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* n */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        89: .line 262
      StackMap locals:
      StackMap stack:
            aload 6 /* context */
            ifnull 95
            aload 6 /* context */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
            goto 95
      StackMap locals:
      StackMap stack: java.lang.Throwable
        90: astore 4
            aload 6 /* context */
            ifnull 91
            aload 6 /* context */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 6 // org.graalvm.compiler.debug.DebugCloseable context
      StackMap locals:
      StackMap stack:
        91: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        92: astore 5
            aload 4
            ifnonnull 93
            aload 5
            astore 4
            goto 94
      StackMap locals:
      StackMap stack:
        93: aload 4
            aload 5
            if_acmpeq 94
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        94: aload 4
            athrow
        95: .line 263
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.graph.Node n
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   96     0     this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   96     1        n  Lorg/graalvm/compiler/graph/Node;
            0   96     2     tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            2   96     3    graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            4   91     6  context  Lorg/graalvm/compiler/debug/DebugCloseable;
      Exception table:
        from    to  target  type
           4    89      90  any
           3    92      92  any
    MethodParameters:
      Name  Flags
      n     
      tool  

  private void lowerSecondHalf(org.graalvm.compiler.nodes.calc.UnpackEndianHalfNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/UnpackEndianHalfNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.calc.UnpackEndianHalfNode n
         0: .line 266
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.target:Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            invokevirtual jdk.vm.ci.code.Architecture.getByteOrder:()Ljava/nio/ByteOrder;
            astore 2 /* byteOrder */
        start local 2 // java.nio.ByteOrder byteOrder
         1: .line 267
            aload 1 /* n */
            aload 2 /* byteOrder */
            invokevirtual org.graalvm.compiler.nodes.calc.UnpackEndianHalfNode.lower:(Ljava/nio/ByteOrder;)V
         2: .line 268
            return
        end local 2 // java.nio.ByteOrder byteOrder
        end local 1 // org.graalvm.compiler.nodes.calc.UnpackEndianHalfNode n
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    3     1          n  Lorg/graalvm/compiler/nodes/calc/UnpackEndianHalfNode;
            1    3     2  byteOrder  Ljava/nio/ByteOrder;
    MethodParameters:
      Name  Flags
      n     

  private void lowerIndexOf(org.graalvm.compiler.replacements.StringIndexOfNode);
    descriptor: (Lorg/graalvm/compiler/replacements/StringIndexOfNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.replacements.StringIndexOfNode n
         0: .line 271
            aload 1 /* n */
            iconst_3
            invokevirtual org.graalvm.compiler.replacements.StringIndexOfNode.getArgument:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 5
         1: .line 272
            new org.graalvm.compiler.replacements.DefaultJavaLoweringProvider$1
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.replacements.DefaultJavaLoweringProvider$1.<init>:(Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;)V
            astore 2 /* lowering */
        start local 2 // org.graalvm.compiler.replacements.SnippetLowerableMemoryNode$SnippetLowering lowering
         2: .line 281
            new org.graalvm.compiler.replacements.SnippetLowerableMemoryNode
            dup
            aload 2 /* lowering */
            getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 1 /* n */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.replacements.StringIndexOfNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.replacements.StringIndexOfNode.toArgumentArray:()[Lorg/graalvm/compiler/nodes/ValueNode;
            invokespecial org.graalvm.compiler.replacements.SnippetLowerableMemoryNode.<init>:(Lorg/graalvm/compiler/replacements/SnippetLowerableMemoryNode$SnippetLowering;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;[Lorg/graalvm/compiler/nodes/ValueNode;)V
            astore 3 /* snippetLower */
        start local 3 // org.graalvm.compiler.replacements.SnippetLowerableMemoryNode snippetLower
         3: .line 282
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.replacements.StringIndexOfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 3 /* snippetLower */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            pop
         4: .line 283
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.replacements.StringIndexOfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 1 /* n */
            aload 3 /* snippetLower */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        end local 3 // org.graalvm.compiler.replacements.SnippetLowerableMemoryNode snippetLower
        end local 2 // org.graalvm.compiler.replacements.SnippetLowerableMemoryNode$SnippetLowering lowering
         5: .line 285
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.replacements.StringIndexOfNode n
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    6     1             n  Lorg/graalvm/compiler/replacements/StringIndexOfNode;
            2    5     2      lowering  Lorg/graalvm/compiler/replacements/SnippetLowerableMemoryNode$SnippetLowering;
            3    5     3  snippetLower  Lorg/graalvm/compiler/replacements/SnippetLowerableMemoryNode;
    MethodParameters:
      Name  Flags
      n     

  private void lowerLatin1IndexOf(org.graalvm.compiler.replacements.StringLatin1IndexOfNode);
    descriptor: (Lorg/graalvm/compiler/replacements/StringLatin1IndexOfNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.replacements.StringLatin1IndexOfNode n
         0: .line 288
            aload 1 /* n */
            iconst_2
            invokevirtual org.graalvm.compiler.replacements.StringLatin1IndexOfNode.getArgument:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 5
         1: .line 289
            new org.graalvm.compiler.replacements.DefaultJavaLoweringProvider$2
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.replacements.DefaultJavaLoweringProvider$2.<init>:(Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;)V
            astore 2 /* lowering */
        start local 2 // org.graalvm.compiler.replacements.SnippetLowerableMemoryNode$SnippetLowering lowering
         2: .line 298
            new org.graalvm.compiler.replacements.SnippetLowerableMemoryNode
            dup
            aload 2 /* lowering */
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 1 /* n */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.replacements.StringLatin1IndexOfNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.replacements.StringLatin1IndexOfNode.toArgumentArray:()[Lorg/graalvm/compiler/nodes/ValueNode;
            invokespecial org.graalvm.compiler.replacements.SnippetLowerableMemoryNode.<init>:(Lorg/graalvm/compiler/replacements/SnippetLowerableMemoryNode$SnippetLowering;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;[Lorg/graalvm/compiler/nodes/ValueNode;)V
            astore 3 /* snippetLower */
        start local 3 // org.graalvm.compiler.replacements.SnippetLowerableMemoryNode snippetLower
         3: .line 299
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.replacements.StringLatin1IndexOfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 3 /* snippetLower */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            pop
         4: .line 300
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.replacements.StringLatin1IndexOfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 1 /* n */
            aload 3 /* snippetLower */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        end local 3 // org.graalvm.compiler.replacements.SnippetLowerableMemoryNode snippetLower
        end local 2 // org.graalvm.compiler.replacements.SnippetLowerableMemoryNode$SnippetLowering lowering
         5: .line 302
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.replacements.StringLatin1IndexOfNode n
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    6     1             n  Lorg/graalvm/compiler/replacements/StringLatin1IndexOfNode;
            2    5     2      lowering  Lorg/graalvm/compiler/replacements/SnippetLowerableMemoryNode$SnippetLowering;
            3    5     3  snippetLower  Lorg/graalvm/compiler/replacements/SnippetLowerableMemoryNode;
    MethodParameters:
      Name  Flags
      n     

  private void lowerUTF16IndexOf(org.graalvm.compiler.replacements.StringUTF16IndexOfNode);
    descriptor: (Lorg/graalvm/compiler/replacements/StringUTF16IndexOfNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.replacements.StringUTF16IndexOfNode n
         0: .line 305
            aload 1 /* n */
            iconst_2
            invokevirtual org.graalvm.compiler.replacements.StringUTF16IndexOfNode.getArgument:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 5
         1: .line 306
            new org.graalvm.compiler.replacements.DefaultJavaLoweringProvider$3
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.replacements.DefaultJavaLoweringProvider$3.<init>:(Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;)V
            astore 2 /* lowering */
        start local 2 // org.graalvm.compiler.replacements.SnippetLowerableMemoryNode$SnippetLowering lowering
         2: .line 315
            new org.graalvm.compiler.replacements.SnippetLowerableMemoryNode
            dup
            aload 2 /* lowering */
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 1 /* n */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.replacements.StringUTF16IndexOfNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.replacements.StringUTF16IndexOfNode.toArgumentArray:()[Lorg/graalvm/compiler/nodes/ValueNode;
            invokespecial org.graalvm.compiler.replacements.SnippetLowerableMemoryNode.<init>:(Lorg/graalvm/compiler/replacements/SnippetLowerableMemoryNode$SnippetLowering;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;[Lorg/graalvm/compiler/nodes/ValueNode;)V
            astore 3 /* snippetLower */
        start local 3 // org.graalvm.compiler.replacements.SnippetLowerableMemoryNode snippetLower
         3: .line 316
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.replacements.StringUTF16IndexOfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 3 /* snippetLower */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            pop
         4: .line 317
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.replacements.StringUTF16IndexOfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 1 /* n */
            aload 3 /* snippetLower */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        end local 3 // org.graalvm.compiler.replacements.SnippetLowerableMemoryNode snippetLower
        end local 2 // org.graalvm.compiler.replacements.SnippetLowerableMemoryNode$SnippetLowering lowering
         5: .line 319
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.replacements.StringUTF16IndexOfNode n
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    6     1             n  Lorg/graalvm/compiler/replacements/StringUTF16IndexOfNode;
            2    5     2      lowering  Lorg/graalvm/compiler/replacements/SnippetLowerableMemoryNode$SnippetLowering;
            3    5     3  snippetLower  Lorg/graalvm/compiler/replacements/SnippetLowerableMemoryNode;
    MethodParameters:
      Name  Flags
      n     

  private void lowerBinaryMath(org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/replacements/nodes/BinaryMathIntrinsicNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode math
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 322
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.HIGH_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
            if_acmpne 2
         1: .line 323
            return
         2: .line 325
      StackMap locals:
      StackMap stack:
            aload 1 /* math */
            invokevirtual org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 3 /* method */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaMethod method
         3: .line 326
            aload 3 /* method */
            ifnull 8
         4: .line 327
            aload 3 /* method */
            ldc Lorg/graalvm/compiler/api/replacements/Snippet;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 6
         5: .line 330
            return
         6: .line 332
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            aload 3 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            aload 1 /* math */
            invokevirtual org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode.getOperation:()Lorg/graalvm/compiler/replacements/nodes/BinaryMathIntrinsicNode$BinaryOperation;
            invokevirtual org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode$BinaryOperation.name:()Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 8
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            ldc Ljava/lang/Math;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 3 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 335
            return
         8: .line 338
      StackMap locals:
      StackMap stack:
            aload 1 /* math */
            invokevirtual org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 4 /* graph */
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         9: .line 339
            aload 4 /* graph */
            new org.graalvm.compiler.nodes.extended.ForeignCallNode
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.foreignCalls:Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;
            aload 1 /* math */
            invokevirtual org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode.getOperation:()Lorg/graalvm/compiler/replacements/nodes/BinaryMathIntrinsicNode$BinaryOperation;
            getfield org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode$BinaryOperation.foreignCallDescriptor:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            iconst_2
            anewarray org.graalvm.compiler.nodes.ValueNode
            dup
            iconst_0
            aload 1 /* math */
            invokevirtual org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aastore
            dup
            iconst_1
            aload 1 /* math */
            invokevirtual org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            aastore
            invokespecial org.graalvm.compiler.nodes.extended.ForeignCallNode.<init>:(Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;[Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.extended.ForeignCallNode
            astore 5 /* call */
        start local 5 // org.graalvm.compiler.nodes.extended.ForeignCallNode call
        10: .line 340
            aload 4 /* graph */
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.lastFixedNode:()Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            aload 5 /* call */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        11: .line 341
            aload 1 /* math */
            aload 5 /* call */
            invokevirtual org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        12: .line 342
            return
        end local 5 // org.graalvm.compiler.nodes.extended.ForeignCallNode call
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 3 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode math
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   13     1    math  Lorg/graalvm/compiler/replacements/nodes/BinaryMathIntrinsicNode;
            0   13     2    tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            3   13     3  method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            9   13     4   graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           10   13     5    call  Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;
    MethodParameters:
      Name  Flags
      math  
      tool  

  private void lowerUnaryMath(org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode math
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 345
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.HIGH_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
            if_acmpne 2
         1: .line 346
            return
         2: .line 348
      StackMap locals:
      StackMap stack:
            aload 1 /* math */
            invokevirtual org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 3 /* method */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaMethod method
         3: .line 349
            aload 3 /* method */
            ifnull 6
         4: .line 350
            aload 3 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            aload 1 /* math */
            invokevirtual org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.getOperation:()Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;
            invokevirtual org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation.name:()Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 6
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            ldc Ljava/lang/Math;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 3 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 353
            return
         6: .line 356
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            aload 1 /* math */
            invokevirtual org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 4 /* graph */
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         7: .line 357
            aload 1 /* math */
            invokevirtual org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.extended.ForeignCallNode
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.foreignCalls:Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;
            aload 1 /* math */
            invokevirtual org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.getOperation:()Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;
            getfield org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation.foreignCallDescriptor:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            iconst_1
            anewarray org.graalvm.compiler.nodes.ValueNode
            dup
            iconst_0
            aload 1 /* math */
            invokevirtual org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            aastore
            invokespecial org.graalvm.compiler.nodes.extended.ForeignCallNode.<init>:(Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;[Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.extended.ForeignCallNode
            astore 5 /* call */
        start local 5 // org.graalvm.compiler.nodes.extended.ForeignCallNode call
         8: .line 358
            aload 4 /* graph */
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.lastFixedNode:()Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            aload 5 /* call */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
         9: .line 359
            aload 1 /* math */
            aload 5 /* call */
            invokevirtual org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        10: .line 360
            return
        end local 5 // org.graalvm.compiler.nodes.extended.ForeignCallNode call
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 3 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode math
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   11     1    math  Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode;
            0   11     2    tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            3   11     3  method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            7   11     4   graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            8   11     5    call  Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;
    MethodParameters:
      Name  Flags
      math  
      tool  

  protected void lowerVerifyHeap(org.graalvm.compiler.nodes.debug.VerifyHeapNode);
    descriptor: (Lorg/graalvm/compiler/nodes/debug/VerifyHeapNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.debug.VerifyHeapNode n
         0: .line 363
            aload 1 /* n */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
         1: .line 364
            return
        end local 1 // org.graalvm.compiler.nodes.debug.VerifyHeapNode n
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    2     1     n  Lorg/graalvm/compiler/nodes/debug/VerifyHeapNode;
    MethodParameters:
      Name  Flags
      n     

  protected org.graalvm.compiler.nodes.memory.address.AddressNode createOffsetAddress(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, long);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;J)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.nodes.ValueNode object
        start local 3 // long offset
         0: .line 367
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.target:Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.wordJavaKind:Ljdk/vm/ci/meta/JavaKind;
            lload 3 /* offset */
            aload 1 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerKind:(Ljdk/vm/ci/meta/JavaKind;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 5 /* o */
        start local 5 // org.graalvm.compiler.nodes.ValueNode o
         1: .line 368
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            dup
            aload 2 /* object */
            aload 5 /* o */
            invokespecial org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.address.AddressNode
            areturn
        end local 5 // org.graalvm.compiler.nodes.ValueNode o
        end local 3 // long offset
        end local 2 // org.graalvm.compiler.nodes.ValueNode object
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    2     1   graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    2     2  object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     3  offset  J
            1    2     5       o  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
        Name  Flags
      graph   
      object  
      offset  

  protected org.graalvm.compiler.nodes.memory.address.AddressNode createFieldAddress(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.nodes.ValueNode object
        start local 3 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 372
            aload 0 /* this */
            aload 3 /* field */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.fieldOffset:(Ljdk/vm/ci/meta/ResolvedJavaField;)I
            istore 4 /* offset */
        start local 4 // int offset
         1: .line 373
            iload 4 /* offset */
            iflt 3
         2: .line 374
            aload 0 /* this */
            aload 1 /* graph */
            aload 2 /* object */
            iload 4 /* offset */
            i2l
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createOffsetAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;J)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            areturn
         3: .line 376
      StackMap locals: int
      StackMap stack:
            aconst_null
            areturn
        end local 4 // int offset
        end local 3 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 2 // org.graalvm.compiler.nodes.ValueNode object
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1   graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    4     2  object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     3   field  Ljdk/vm/ci/meta/ResolvedJavaField;
            1    4     4  offset  I
    MethodParameters:
        Name  Flags
      graph   
      object  
      field   

  protected abstract jdk.vm.ci.meta.JavaKind getStorageKind(jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/JavaKind;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      field  

  protected void lowerLoadFieldNode(org.graalvm.compiler.nodes.java.LoadFieldNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/java/LoadFieldNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=12, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.java.LoadFieldNode loadField
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 383
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 1
            aload 1 /* loadField */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 384
      StackMap locals:
      StackMap stack:
            aload 1 /* loadField */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 3 /* graph */
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         2: .line 385
            aload 1 /* loadField */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 4 /* field */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaField field
         3: .line 386
            aload 1 /* loadField */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.isStatic:()Z
            ifeq 4
            aload 0 /* this */
            aload 3 /* graph */
            aload 4 /* field */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.staticFieldBase:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/ValueNode;
            goto 5
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
         4: aload 1 /* loadField */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.ValueNode
         5: astore 5 /* object */
        start local 5 // org.graalvm.compiler.nodes.ValueNode object
         6: .line 387
            aload 0 /* this */
            aload 5 /* object */
            aload 1 /* loadField */
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createNullCheckedValue:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* object */
         7: .line 388
            aload 0 /* this */
            aload 1 /* loadField */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 0 /* this */
            aload 4 /* field */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.getStorageKind:(Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/JavaKind;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.loadStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 6 /* loadStamp */
        start local 6 // org.graalvm.compiler.core.common.type.Stamp loadStamp
         8: .line 390
            aload 0 /* this */
            aload 3 /* graph */
            aload 5 /* object */
            aload 4 /* field */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createFieldAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 7 /* address */
        start local 7 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         9: .line 391
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 10
            aload 7 /* address */
            ifnonnull 10
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Field that is loaded must not be eliminated: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            iconst_1
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:(Z)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        10: .line 393
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.nodes.memory.address.AddressNode
      StackMap stack:
            aload 3 /* graph */
            new org.graalvm.compiler.nodes.memory.ReadNode
            dup
            aload 7 /* address */
            aload 0 /* this */
            aload 4 /* field */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.fieldLocationIdentity:(Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/FieldLocationIdentity;
            aload 6 /* loadStamp */
            aload 0 /* this */
            aload 4 /* field */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.fieldLoadBarrierType:(Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.ReadNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.ReadNode
            astore 8 /* memoryRead */
        start local 8 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
        11: .line 394
            aload 0 /* this */
            aload 3 /* graph */
            aload 0 /* this */
            aload 4 /* field */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.getStorageKind:(Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/JavaKind;
            aload 8 /* memoryRead */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitLoadConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* readValue */
        start local 9 // org.graalvm.compiler.nodes.ValueNode readValue
        12: .line 395
            aload 1 /* loadField */
            aload 9 /* readValue */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        13: .line 396
            aload 3 /* graph */
            aload 1 /* loadField */
            aload 8 /* memoryRead */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/graph/Node;)V
        14: .line 398
            aload 1 /* loadField */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.isVolatile:()Z
            ifeq 19
        15: .line 399
            aload 3 /* graph */
            new org.graalvm.compiler.nodes.extended.MembarNode
            dup
            iconst_0
            invokespecial org.graalvm.compiler.nodes.extended.MembarNode.<init>:(I)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.extended.MembarNode
            astore 10 /* preMembar */
        start local 10 // org.graalvm.compiler.nodes.extended.MembarNode preMembar
        16: .line 400
            aload 3 /* graph */
            aload 8 /* memoryRead */
            aload 10 /* preMembar */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        17: .line 401
            aload 3 /* graph */
            new org.graalvm.compiler.nodes.extended.MembarNode
            dup
            iconst_3
            invokespecial org.graalvm.compiler.nodes.extended.MembarNode.<init>:(I)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.extended.MembarNode
            astore 11 /* postMembar */
        start local 11 // org.graalvm.compiler.nodes.extended.MembarNode postMembar
        18: .line 402
            aload 3 /* graph */
            aload 8 /* memoryRead */
            aload 11 /* postMembar */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        end local 11 // org.graalvm.compiler.nodes.extended.MembarNode postMembar
        end local 10 // org.graalvm.compiler.nodes.extended.MembarNode preMembar
        19: .line 404
      StackMap locals: org.graalvm.compiler.nodes.memory.ReadNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            return
        end local 9 // org.graalvm.compiler.nodes.ValueNode readValue
        end local 8 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
        end local 7 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 6 // org.graalvm.compiler.core.common.type.Stamp loadStamp
        end local 5 // org.graalvm.compiler.nodes.ValueNode object
        end local 4 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.nodes.java.LoadFieldNode loadField
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   20     1   loadField  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            0   20     2        tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            2   20     3       graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            3   20     4       field  Ljdk/vm/ci/meta/ResolvedJavaField;
            6   20     5      object  Lorg/graalvm/compiler/nodes/ValueNode;
            8   20     6   loadStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            9   20     7     address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
           11   20     8  memoryRead  Lorg/graalvm/compiler/nodes/memory/ReadNode;
           12   20     9   readValue  Lorg/graalvm/compiler/nodes/ValueNode;
           16   19    10   preMembar  Lorg/graalvm/compiler/nodes/extended/MembarNode;
           18   19    11  postMembar  Lorg/graalvm/compiler/nodes/extended/MembarNode;
    MethodParameters:
           Name  Flags
      loadField  
      tool       

  protected void lowerStoreFieldNode(org.graalvm.compiler.nodes.java.StoreFieldNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/java/StoreFieldNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=11, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.java.StoreFieldNode storeField
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 407
            aload 1 /* storeField */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 3 /* graph */
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 408
            aload 1 /* storeField */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 4 /* field */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaField field
         2: .line 409
            aload 1 /* storeField */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.isStatic:()Z
            ifeq 3
            aload 0 /* this */
            aload 3 /* graph */
            aload 4 /* field */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.staticFieldBase:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/ValueNode;
            goto 4
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
         3: aload 1 /* storeField */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.ValueNode
         4: astore 5 /* object */
        start local 5 // org.graalvm.compiler.nodes.ValueNode object
         5: .line 410
            aload 0 /* this */
            aload 5 /* object */
            aload 1 /* storeField */
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createNullCheckedValue:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* object */
         6: .line 411
            aload 0 /* this */
            aload 3 /* graph */
            aload 0 /* this */
            aload 1 /* storeField */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.getStorageKind:(Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/JavaKind;
            aload 1 /* storeField */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* value */
        start local 6 // org.graalvm.compiler.nodes.ValueNode value
         7: .line 412
            aload 0 /* this */
            aload 3 /* graph */
            aload 5 /* object */
            aload 4 /* field */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createFieldAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 7 /* address */
        start local 7 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         8: .line 413
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 9
            aload 7 /* address */
            ifnonnull 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 415
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.address.AddressNode
      StackMap stack:
            aload 3 /* graph */
            new org.graalvm.compiler.nodes.memory.WriteNode
            dup
            aload 7 /* address */
            aload 0 /* this */
            aload 4 /* field */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.fieldLocationIdentity:(Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/FieldLocationIdentity;
            aload 6 /* value */
            aload 0 /* this */
            aload 1 /* storeField */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.fieldStoreBarrierType:(Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.WriteNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.WriteNode
            astore 8 /* memoryWrite */
        start local 8 // org.graalvm.compiler.nodes.memory.WriteNode memoryWrite
        10: .line 416
            aload 8 /* memoryWrite */
            aload 1 /* storeField */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        11: .line 417
            aload 3 /* graph */
            aload 1 /* storeField */
            aload 8 /* memoryWrite */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        12: .line 419
            aload 1 /* storeField */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.isVolatile:()Z
            ifeq 17
        13: .line 420
            aload 3 /* graph */
            new org.graalvm.compiler.nodes.extended.MembarNode
            dup
            bipush 10
            invokespecial org.graalvm.compiler.nodes.extended.MembarNode.<init>:(I)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.extended.MembarNode
            astore 9 /* preMembar */
        start local 9 // org.graalvm.compiler.nodes.extended.MembarNode preMembar
        14: .line 421
            aload 3 /* graph */
            aload 8 /* memoryWrite */
            aload 9 /* preMembar */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        15: .line 422
            aload 3 /* graph */
            new org.graalvm.compiler.nodes.extended.MembarNode
            dup
            bipush 12
            invokespecial org.graalvm.compiler.nodes.extended.MembarNode.<init>:(I)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.extended.MembarNode
            astore 10 /* postMembar */
        start local 10 // org.graalvm.compiler.nodes.extended.MembarNode postMembar
        16: .line 423
            aload 3 /* graph */
            aload 8 /* memoryWrite */
            aload 10 /* postMembar */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        end local 10 // org.graalvm.compiler.nodes.extended.MembarNode postMembar
        end local 9 // org.graalvm.compiler.nodes.extended.MembarNode preMembar
        17: .line 425
      StackMap locals: org.graalvm.compiler.nodes.memory.WriteNode
      StackMap stack:
            return
        end local 8 // org.graalvm.compiler.nodes.memory.WriteNode memoryWrite
        end local 7 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 6 // org.graalvm.compiler.nodes.ValueNode value
        end local 5 // org.graalvm.compiler.nodes.ValueNode object
        end local 4 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.nodes.java.StoreFieldNode storeField
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   18     1   storeField  Lorg/graalvm/compiler/nodes/java/StoreFieldNode;
            0   18     2         tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1   18     3        graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2   18     4        field  Ljdk/vm/ci/meta/ResolvedJavaField;
            5   18     5       object  Lorg/graalvm/compiler/nodes/ValueNode;
            7   18     6        value  Lorg/graalvm/compiler/nodes/ValueNode;
            8   18     7      address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
           10   18     8  memoryWrite  Lorg/graalvm/compiler/nodes/memory/WriteNode;
           14   17     9    preMembar  Lorg/graalvm/compiler/nodes/extended/MembarNode;
           16   17    10   postMembar  Lorg/graalvm/compiler/nodes/extended/MembarNode;
    MethodParameters:
            Name  Flags
      storeField  
      tool        

  public org.graalvm.compiler.nodes.memory.address.AddressNode createArrayIndexAddress(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.extended.GuardingNode);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.nodes.ValueNode array
        start local 3 // jdk.vm.ci.meta.JavaKind elementKind
        start local 4 // org.graalvm.compiler.nodes.ValueNode index
        start local 5 // org.graalvm.compiler.nodes.extended.GuardingNode boundsCheck
         0: .line 434
            aload 1 /* graph */
            aload 4 /* index */
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.POSITIVE_ARRAY_INDEX_STAMP:Lorg/graalvm/compiler/core/common/type/IntegerStamp;
            aload 5 /* boundsCheck */
            ifnull 1
            aload 5 /* boundsCheck */
            invokeinterface org.graalvm.compiler.nodes.extended.GuardingNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            goto 2
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaKind org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.extended.GuardingNode
      StackMap stack: org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.core.common.type.IntegerStamp
         1: aconst_null
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaKind org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.extended.GuardingNode
      StackMap stack: org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.core.common.type.IntegerStamp org.graalvm.compiler.nodes.ValueNode
         2: invokestatic org.graalvm.compiler.nodes.PiNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.maybeAddOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 6 /* positiveIndex */
        start local 6 // org.graalvm.compiler.nodes.ValueNode positiveIndex
         3: .line 435
            aload 0 /* this */
            aload 1 /* graph */
            aload 2 /* array */
            aload 3 /* elementKind */
            aload 6 /* positiveIndex */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createArrayAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            areturn
        end local 6 // org.graalvm.compiler.nodes.ValueNode positiveIndex
        end local 5 // org.graalvm.compiler.nodes.extended.GuardingNode boundsCheck
        end local 4 // org.graalvm.compiler.nodes.ValueNode index
        end local 3 // jdk.vm.ci.meta.JavaKind elementKind
        end local 2 // org.graalvm.compiler.nodes.ValueNode array
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1          graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    4     2          array  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     3    elementKind  Ljdk/vm/ci/meta/JavaKind;
            0    4     4          index  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     5    boundsCheck  Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            3    4     6  positiveIndex  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
             Name  Flags
      graph        
      array        
      elementKind  
      index        
      boundsCheck  

  public org.graalvm.compiler.nodes.memory.address.AddressNode createArrayAddress(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=10, args_size=5
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.nodes.ValueNode array
        start local 3 // jdk.vm.ci.meta.JavaKind elementKind
        start local 4 // org.graalvm.compiler.nodes.ValueNode index
         0: .line 440
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.target:Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.wordSize:I
            iconst_4
            if_icmple 3
         1: .line 441
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.calc.SignExtendNode
            dup
            aload 4 /* index */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.target:Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.wordSize:I
            bipush 8
            imul
            invokespecial org.graalvm.compiler.nodes.calc.SignExtendNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;I)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 5 /* wordIndex */
        start local 5 // org.graalvm.compiler.nodes.ValueNode wordIndex
         2: .line 442
            goto 5
        end local 5 // org.graalvm.compiler.nodes.ValueNode wordIndex
         3: .line 443
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.target:Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.wordSize:I
            iconst_4
            if_icmpeq 4
            new java.lang.AssertionError
            dup
            ldc "unsupported word size"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 444
      StackMap locals:
      StackMap stack:
            aload 4 /* index */
            astore 5 /* wordIndex */
        start local 5 // org.graalvm.compiler.nodes.ValueNode wordIndex
         5: .line 447
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 3 /* elementKind */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            invokestatic jdk.vm.ci.code.CodeUtil.log2:(I)I
            istore 6 /* shift */
        start local 6 // int shift
         6: .line 448
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.calc.LeftShiftNode
            dup
            aload 5 /* wordIndex */
            iload 6 /* shift */
            aload 1 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(ILorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokespecial org.graalvm.compiler.nodes.calc.LeftShiftNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 7 /* scaledIndex */
        start local 7 // org.graalvm.compiler.nodes.ValueNode scaledIndex
         7: .line 450
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 3 /* elementKind */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 8 /* base */
        start local 8 // int base
         8: .line 451
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.calc.AddNode
            dup
            aload 7 /* scaledIndex */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.target:Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.wordJavaKind:Ljdk/vm/ci/meta/JavaKind;
            iload 8 /* base */
            i2l
            aload 1 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerKind:(Ljdk/vm/ci/meta/JavaKind;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokespecial org.graalvm.compiler.nodes.calc.AddNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 9 /* offset */
        start local 9 // org.graalvm.compiler.nodes.ValueNode offset
         9: .line 453
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            dup
            aload 2 /* array */
            aload 9 /* offset */
            invokespecial org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.address.AddressNode
            areturn
        end local 9 // org.graalvm.compiler.nodes.ValueNode offset
        end local 8 // int base
        end local 7 // org.graalvm.compiler.nodes.ValueNode scaledIndex
        end local 6 // int shift
        end local 5 // org.graalvm.compiler.nodes.ValueNode wordIndex
        end local 4 // org.graalvm.compiler.nodes.ValueNode index
        end local 3 // jdk.vm.ci.meta.JavaKind elementKind
        end local 2 // org.graalvm.compiler.nodes.ValueNode array
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   10     1        graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   10     2        array  Lorg/graalvm/compiler/nodes/ValueNode;
            0   10     3  elementKind  Ljdk/vm/ci/meta/JavaKind;
            0   10     4        index  Lorg/graalvm/compiler/nodes/ValueNode;
            2    3     5    wordIndex  Lorg/graalvm/compiler/nodes/ValueNode;
            5   10     5    wordIndex  Lorg/graalvm/compiler/nodes/ValueNode;
            6   10     6        shift  I
            7   10     7  scaledIndex  Lorg/graalvm/compiler/nodes/ValueNode;
            8   10     8         base  I
            9   10     9       offset  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
             Name  Flags
      graph        
      array        
      elementKind  
      index        

  protected void lowerIndexAddressNode(org.graalvm.compiler.nodes.memory.address.IndexAddressNode);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/IndexAddressNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.memory.address.IndexAddressNode indexAddress
         0: .line 457
            aload 0 /* this */
            aload 1 /* indexAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.IndexAddressNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 1 /* indexAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.IndexAddressNode.getArray:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* indexAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.IndexAddressNode.getElementKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 1 /* indexAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.IndexAddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createArrayAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 2 /* lowered */
        start local 2 // org.graalvm.compiler.nodes.memory.address.AddressNode lowered
         1: .line 458
            aload 1 /* indexAddress */
            aload 2 /* lowered */
            invokevirtual org.graalvm.compiler.nodes.memory.address.IndexAddressNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
         2: .line 459
            return
        end local 2 // org.graalvm.compiler.nodes.memory.address.AddressNode lowered
        end local 1 // org.graalvm.compiler.nodes.memory.address.IndexAddressNode indexAddress
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    3     1  indexAddress  Lorg/graalvm/compiler/nodes/memory/address/IndexAddressNode;
            1    3     2       lowered  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
    MethodParameters:
              Name  Flags
      indexAddress  

  protected void lowerLoadIndexedNode(org.graalvm.compiler.nodes.java.LoadIndexedNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=12, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.java.LoadIndexedNode loadIndexed
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 462
            aload 1 /* loadIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 3 /* graph */
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 463
            aload 1 /* loadIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.array:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* array */
        start local 4 // org.graalvm.compiler.nodes.ValueNode array
         2: .line 464
            aload 0 /* this */
            aload 4 /* array */
            aload 1 /* loadIndexed */
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createNullCheckedValue:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* array */
         3: .line 465
            aload 1 /* loadIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.elementKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* elementKind */
        start local 5 // jdk.vm.ci.meta.JavaKind elementKind
         4: .line 466
            aload 0 /* this */
            aload 1 /* loadIndexed */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 5 /* elementKind */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.loadStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 6 /* loadStamp */
        start local 6 // org.graalvm.compiler.core.common.type.Stamp loadStamp
         5: .line 468
            aload 0 /* this */
            aload 1 /* loadIndexed */
            aload 4 /* array */
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.getBoundsCheck:(Lorg/graalvm/compiler/nodes/java/AccessIndexedNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            astore 7 /* boundsCheck */
        start local 7 // org.graalvm.compiler.nodes.extended.GuardingNode boundsCheck
         6: .line 469
            aload 1 /* loadIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.index:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 8 /* index */
        start local 8 // org.graalvm.compiler.nodes.ValueNode index
         7: .line 470
            getstatic org.graalvm.compiler.core.common.SpeculativeExecutionAttacksMitigations$Options.UseIndexMasking:Lorg/graalvm/compiler/options/OptionKey;
            aload 3 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 9
         8: .line 471
            aload 0 /* this */
            aload 1 /* loadIndexed */
            aload 8 /* index */
            aload 4 /* array */
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.proxyIndex:(Lorg/graalvm/compiler/nodes/java/AccessIndexedNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 8 /* index */
         9: .line 473
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.java.LoadIndexedNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaKind org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.nodes.extended.GuardingNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 0 /* this */
            aload 3 /* graph */
            aload 4 /* array */
            aload 5 /* elementKind */
            aload 8 /* index */
            aload 7 /* boundsCheck */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createArrayIndexAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 9 /* address */
        start local 9 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        10: .line 475
            aload 3 /* graph */
            new org.graalvm.compiler.nodes.memory.ReadNode
            dup
            aload 9 /* address */
            aload 5 /* elementKind */
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 6 /* loadStamp */
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.ReadNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.ReadNode
            astore 10 /* memoryRead */
        start local 10 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
        11: .line 476
            aload 10 /* memoryRead */
            aload 7 /* boundsCheck */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.setGuard:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;)V
        12: .line 477
            aload 0 /* this */
            aload 3 /* graph */
            aload 5 /* elementKind */
            aload 10 /* memoryRead */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitLoadConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* readValue */
        start local 11 // org.graalvm.compiler.nodes.ValueNode readValue
        13: .line 479
            aload 1 /* loadIndexed */
            aload 11 /* readValue */
            invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        14: .line 480
            aload 3 /* graph */
            aload 1 /* loadIndexed */
            aload 10 /* memoryRead */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/graph/Node;)V
        15: .line 481
            return
        end local 11 // org.graalvm.compiler.nodes.ValueNode readValue
        end local 10 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
        end local 9 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 8 // org.graalvm.compiler.nodes.ValueNode index
        end local 7 // org.graalvm.compiler.nodes.extended.GuardingNode boundsCheck
        end local 6 // org.graalvm.compiler.core.common.type.Stamp loadStamp
        end local 5 // jdk.vm.ci.meta.JavaKind elementKind
        end local 4 // org.graalvm.compiler.nodes.ValueNode array
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.nodes.java.LoadIndexedNode loadIndexed
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   16     1  loadIndexed  Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
            0   16     2         tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1   16     3        graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2   16     4        array  Lorg/graalvm/compiler/nodes/ValueNode;
            4   16     5  elementKind  Ljdk/vm/ci/meta/JavaKind;
            5   16     6    loadStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            6   16     7  boundsCheck  Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            7   16     8        index  Lorg/graalvm/compiler/nodes/ValueNode;
           10   16     9      address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
           11   16    10   memoryRead  Lorg/graalvm/compiler/nodes/memory/ReadNode;
           13   16    11    readValue  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
             Name  Flags
      loadIndexed  
      tool         

  protected void lowerStoreIndexedNode(org.graalvm.compiler.nodes.java.StoreIndexedNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/java/StoreIndexedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=13, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.java.StoreIndexedNode storeIndexed
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 484
            aload 1 /* storeIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.StoreIndexedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 3 /* graph */
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 486
            aload 1 /* storeIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.StoreIndexedNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* value */
        start local 4 // org.graalvm.compiler.nodes.ValueNode value
         2: .line 487
            aload 1 /* storeIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.StoreIndexedNode.array:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* array */
        start local 5 // org.graalvm.compiler.nodes.ValueNode array
         3: .line 489
            aload 0 /* this */
            aload 5 /* array */
            aload 1 /* storeIndexed */
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createNullCheckedValue:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* array */
         4: .line 491
            aload 0 /* this */
            aload 1 /* storeIndexed */
            aload 5 /* array */
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.getBoundsCheck:(Lorg/graalvm/compiler/nodes/java/AccessIndexedNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            astore 6 /* boundsCheck */
        start local 6 // org.graalvm.compiler.nodes.extended.GuardingNode boundsCheck
         5: .line 493
            aload 1 /* storeIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.StoreIndexedNode.elementKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 7 /* elementKind */
        start local 7 // jdk.vm.ci.meta.JavaKind elementKind
         6: .line 495
            aconst_null
            astore 8 /* condition */
        start local 8 // org.graalvm.compiler.nodes.LogicNode condition
         7: .line 496
            aload 1 /* storeIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.StoreIndexedNode.getStoreCheck:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            ifnonnull 20
            aload 7 /* elementKind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 20
            aload 4 /* value */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.isPointerAlwaysNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifne 20
         8: .line 498
            aload 5 /* array */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeReferenceOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            astore 9 /* arrayType */
        start local 9 // org.graalvm.compiler.core.common.type.TypeReference arrayType
         9: .line 499
            aload 9 /* arrayType */
            ifnull 16
            aload 9 /* arrayType */
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.isExact:()Z
            ifeq 16
        10: .line 500
            aload 9 /* arrayType */
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 10 /* elementType */
        start local 10 // jdk.vm.ci.meta.ResolvedJavaType elementType
        11: .line 501
            aload 10 /* elementType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isJavaLangObject:()Z
            ifne 20
        12: .line 502
            aload 1 /* storeIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.StoreIndexedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
            aload 10 /* elementType */
            invokestatic org.graalvm.compiler.core.common.type.TypeReference.createTrusted:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/ResolvedJavaType;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            astore 11 /* typeReference */
        start local 11 // org.graalvm.compiler.core.common.type.TypeReference typeReference
        13: .line 503
            aload 3 /* graph */
            aload 11 /* typeReference */
            aload 4 /* value */
            invokestatic org.graalvm.compiler.nodes.java.InstanceOfNode.create:(Lorg/graalvm/compiler/core/common/type/TypeReference;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/LogicNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.LogicNode
            astore 12 /* typeTest */
        start local 12 // org.graalvm.compiler.nodes.LogicNode typeTest
        14: .line 504
            aload 3 /* graph */
            aload 4 /* value */
            invokestatic org.graalvm.compiler.nodes.calc.IsNullNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/LogicNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.LogicNode
            aload 12 /* typeTest */
            ldc 0.25
            invokestatic org.graalvm.compiler.nodes.LogicNode.or:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/LogicNode;D)Lorg/graalvm/compiler/nodes/LogicNode;
            astore 8 /* condition */
        end local 12 // org.graalvm.compiler.nodes.LogicNode typeTest
        end local 11 // org.graalvm.compiler.core.common.type.TypeReference typeReference
        end local 10 // jdk.vm.ci.meta.ResolvedJavaType elementType
        15: .line 506
            goto 20
        16: .line 511
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.java.StoreIndexedNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.extended.GuardingNode jdk.vm.ci.meta.JavaKind org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.core.common.type.TypeReference
      StackMap stack:
            aload 0 /* this */
            aload 3 /* graph */
            aload 5 /* array */
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createReadHub:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 10 /* arrayClass */
        start local 10 // org.graalvm.compiler.nodes.ValueNode arrayClass
        17: .line 512
            aload 0 /* this */
            aload 3 /* graph */
            aload 10 /* arrayClass */
            aload 1 /* storeIndexed */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createReadArrayComponentHub:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* componentHub */
        start local 11 // org.graalvm.compiler.nodes.ValueNode componentHub
        18: .line 513
            aload 3 /* graph */
            aload 3 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            aload 11 /* componentHub */
            aload 4 /* value */
            iconst_0
            invokestatic org.graalvm.compiler.nodes.java.InstanceOfDynamicNode.create:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/LogicNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.LogicNode
            astore 12 /* typeTest */
        start local 12 // org.graalvm.compiler.nodes.LogicNode typeTest
        19: .line 514
            aload 3 /* graph */
            aload 4 /* value */
            invokestatic org.graalvm.compiler.nodes.calc.IsNullNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/LogicNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.LogicNode
            aload 12 /* typeTest */
            ldc 0.25
            invokestatic org.graalvm.compiler.nodes.LogicNode.or:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/LogicNode;D)Lorg/graalvm/compiler/nodes/LogicNode;
            astore 8 /* condition */
        end local 12 // org.graalvm.compiler.nodes.LogicNode typeTest
        end local 11 // org.graalvm.compiler.nodes.ValueNode componentHub
        end local 10 // org.graalvm.compiler.nodes.ValueNode arrayClass
        end local 9 // org.graalvm.compiler.core.common.type.TypeReference arrayType
        20: .line 518
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* graph */
            aload 5 /* array */
            aload 7 /* elementKind */
            aload 1 /* storeIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.StoreIndexedNode.index:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 6 /* boundsCheck */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createArrayIndexAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 9 /* address */
        start local 9 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        21: .line 519
            aload 3 /* graph */
            new org.graalvm.compiler.nodes.memory.WriteNode
            dup
            aload 9 /* address */
            aload 7 /* elementKind */
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 0 /* this */
            aload 3 /* graph */
            aload 7 /* elementKind */
            aload 4 /* value */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
        22: .line 520
            aload 0 /* this */
            aload 5 /* array */
            aload 1 /* storeIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.StoreIndexedNode.elementKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.arrayStoreBarrierType:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.WriteNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
        23: .line 519
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.WriteNode
            astore 10 /* memoryWrite */
        start local 10 // org.graalvm.compiler.nodes.memory.WriteNode memoryWrite
        24: .line 521
            aload 10 /* memoryWrite */
            aload 6 /* boundsCheck */
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.setGuard:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;)V
        25: .line 522
            aload 8 /* condition */
            ifnull 27
        26: .line 523
            aload 2 /* tool */
            aload 1 /* storeIndexed */
            aload 8 /* condition */
            getstatic jdk.vm.ci.meta.DeoptimizationReason.ArrayStoreException:Ljdk/vm/ci/meta/DeoptimizationReason;
            getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateReprofile:Ljdk/vm/ci/meta/DeoptimizationAction;
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.createGuard:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationReason;Ljdk/vm/ci/meta/DeoptimizationAction;)Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            pop
        27: .line 525
      StackMap locals: org.graalvm.compiler.nodes.memory.address.AddressNode org.graalvm.compiler.nodes.memory.WriteNode
      StackMap stack:
            aload 10 /* memoryWrite */
            aload 1 /* storeIndexed */
            invokevirtual org.graalvm.compiler.nodes.java.StoreIndexedNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        28: .line 526
            aload 3 /* graph */
            aload 1 /* storeIndexed */
            aload 10 /* memoryWrite */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        29: .line 527
            return
        end local 10 // org.graalvm.compiler.nodes.memory.WriteNode memoryWrite
        end local 9 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 8 // org.graalvm.compiler.nodes.LogicNode condition
        end local 7 // jdk.vm.ci.meta.JavaKind elementKind
        end local 6 // org.graalvm.compiler.nodes.extended.GuardingNode boundsCheck
        end local 5 // org.graalvm.compiler.nodes.ValueNode array
        end local 4 // org.graalvm.compiler.nodes.ValueNode value
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.nodes.java.StoreIndexedNode storeIndexed
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   30     0           this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   30     1   storeIndexed  Lorg/graalvm/compiler/nodes/java/StoreIndexedNode;
            0   30     2           tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1   30     3          graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2   30     4          value  Lorg/graalvm/compiler/nodes/ValueNode;
            3   30     5          array  Lorg/graalvm/compiler/nodes/ValueNode;
            5   30     6    boundsCheck  Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            6   30     7    elementKind  Ljdk/vm/ci/meta/JavaKind;
            7   30     8      condition  Lorg/graalvm/compiler/nodes/LogicNode;
            9   20     9      arrayType  Lorg/graalvm/compiler/core/common/type/TypeReference;
           11   15    10    elementType  Ljdk/vm/ci/meta/ResolvedJavaType;
           13   15    11  typeReference  Lorg/graalvm/compiler/core/common/type/TypeReference;
           14   15    12       typeTest  Lorg/graalvm/compiler/nodes/LogicNode;
           17   20    10     arrayClass  Lorg/graalvm/compiler/nodes/ValueNode;
           18   20    11   componentHub  Lorg/graalvm/compiler/nodes/ValueNode;
           19   20    12       typeTest  Lorg/graalvm/compiler/nodes/LogicNode;
           21   30     9        address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
           24   30    10    memoryWrite  Lorg/graalvm/compiler/nodes/memory/WriteNode;
    MethodParameters:
              Name  Flags
      storeIndexed  
      tool          

  protected void lowerArrayLengthNode(org.graalvm.compiler.nodes.java.ArrayLengthNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/java/ArrayLengthNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.java.ArrayLengthNode arrayLengthNode
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 530
            aload 1 /* arrayLengthNode */
            aload 0 /* this */
            aload 1 /* arrayLengthNode */
            invokevirtual org.graalvm.compiler.nodes.java.ArrayLengthNode.array:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* arrayLengthNode */
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createReadArrayLength:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/memory/ReadNode;
            invokevirtual org.graalvm.compiler.nodes.java.ArrayLengthNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
         1: .line 531
            aload 1 /* arrayLengthNode */
            invokevirtual org.graalvm.compiler.nodes.java.ArrayLengthNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 3 /* graph */
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         2: .line 532
            aload 3 /* graph */
            aload 1 /* arrayLengthNode */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
         3: .line 533
            return
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.nodes.java.ArrayLengthNode arrayLengthNode
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1  arrayLengthNode  Lorg/graalvm/compiler/nodes/java/ArrayLengthNode;
            0    4     2             tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            2    4     3            graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
    MethodParameters:
                 Name  Flags
      arrayLengthNode  
      tool             

  protected org.graalvm.compiler.nodes.memory.ReadNode createReadArrayLength(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.FixedNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/memory/ReadNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.ValueNode array
        start local 2 // org.graalvm.compiler.nodes.FixedNode before
        start local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 541
            aload 1 /* array */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 4 /* graph */
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 542
            aload 0 /* this */
            aload 1 /* array */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.skipPiWhileNonNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* before */
            aload 3 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createNullCheckedValue:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* canonicalArray */
        start local 5 // org.graalvm.compiler.nodes.ValueNode canonicalArray
         2: .line 543
            aload 0 /* this */
            aload 4 /* graph */
            aload 5 /* canonicalArray */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.arrayLengthOffset:()I
            i2l
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createOffsetAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;J)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 6 /* address */
        start local 6 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         3: .line 544
            aload 4 /* graph */
            new org.graalvm.compiler.nodes.memory.ReadNode
            dup
            aload 6 /* address */
            getstatic org.graalvm.compiler.nodes.NamedLocationIdentity.ARRAY_LENGTH_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.positiveInt:()Lorg/graalvm/compiler/core/common/type/Stamp;
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.ReadNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.ReadNode
            astore 7 /* readArrayLength */
        start local 7 // org.graalvm.compiler.nodes.memory.ReadNode readArrayLength
         4: .line 545
            aload 4 /* graph */
            aload 2 /* before */
            aload 7 /* readArrayLength */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
         5: .line 546
            aload 7 /* readArrayLength */
            areturn
        end local 7 // org.graalvm.compiler.nodes.memory.ReadNode readArrayLength
        end local 6 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 5 // org.graalvm.compiler.nodes.ValueNode canonicalArray
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 2 // org.graalvm.compiler.nodes.FixedNode before
        end local 1 // org.graalvm.compiler.nodes.ValueNode array
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    6     1            array  Lorg/graalvm/compiler/nodes/ValueNode;
            0    6     2           before  Lorg/graalvm/compiler/nodes/FixedNode;
            0    6     3             tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1    6     4            graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    6     5   canonicalArray  Lorg/graalvm/compiler/nodes/ValueNode;
            3    6     6          address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            4    6     7  readArrayLength  Lorg/graalvm/compiler/nodes/memory/ReadNode;
    MethodParameters:
        Name  Flags
      array   
      before  
      tool    

  protected void lowerLoadHubNode(org.graalvm.compiler.nodes.extended.LoadHubNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/LoadHubNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.extended.LoadHubNode loadHub
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 550
            aload 1 /* loadHub */
            invokevirtual org.graalvm.compiler.nodes.extended.LoadHubNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 3 /* graph */
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 551
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.LOW_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
            if_acmpeq 3
         2: .line 552
            return
         3: .line 554
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack:
            aload 3 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.allowsFloatingGuards:()Z
            ifeq 5
         4: .line 555
            return
         5: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* graph */
            aload 1 /* loadHub */
            invokevirtual org.graalvm.compiler.nodes.extended.LoadHubNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createReadHub:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* hub */
        start local 4 // org.graalvm.compiler.nodes.ValueNode hub
         6: .line 558
            aload 1 /* loadHub */
            aload 4 /* hub */
            invokevirtual org.graalvm.compiler.nodes.extended.LoadHubNode.replaceAtUsagesAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
         7: .line 559
            return
        end local 4 // org.graalvm.compiler.nodes.ValueNode hub
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.nodes.extended.LoadHubNode loadHub
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    8     1  loadHub  Lorg/graalvm/compiler/nodes/extended/LoadHubNode;
            0    8     2     tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1    8     3    graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            6    8     4      hub  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
         Name  Flags
      loadHub  
      tool     

  protected void lowerLoadArrayComponentHubNode(org.graalvm.compiler.nodes.extended.LoadArrayComponentHubNode);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/LoadArrayComponentHubNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.extended.LoadArrayComponentHubNode loadHub
         0: .line 562
            aload 1 /* loadHub */
            invokevirtual org.graalvm.compiler.nodes.extended.LoadArrayComponentHubNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 563
            aload 0 /* this */
            aload 2 /* graph */
            aload 1 /* loadHub */
            invokevirtual org.graalvm.compiler.nodes.extended.LoadArrayComponentHubNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* loadHub */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createReadArrayComponentHub:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 3 /* hub */
        start local 3 // org.graalvm.compiler.nodes.ValueNode hub
         2: .line 564
            aload 2 /* graph */
            aload 1 /* loadHub */
            aload 3 /* hub */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/graph/Node;)V
         3: .line 565
            return
        end local 3 // org.graalvm.compiler.nodes.ValueNode hub
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.nodes.extended.LoadArrayComponentHubNode loadHub
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1  loadHub  Lorg/graalvm/compiler/nodes/extended/LoadArrayComponentHubNode;
            1    4     2    graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    4     3      hub  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
         Name  Flags
      loadHub  

  protected void lowerMonitorEnterNode(org.graalvm.compiler.nodes.java.MonitorEnterNode, org.graalvm.compiler.nodes.spi.LoweringTool, org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/java/MonitorEnterNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.java.MonitorEnterNode monitorEnter
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 568
            aload 0 /* this */
            aload 1 /* monitorEnter */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorEnterNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* monitorEnter */
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createNullCheckedValue:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* object */
        start local 4 // org.graalvm.compiler.nodes.ValueNode object
         1: .line 569
            aload 3 /* graph */
            aload 4 /* object */
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getStampProvider:()Lorg/graalvm/compiler/nodes/spi/StampProvider;
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            invokestatic org.graalvm.compiler.nodes.extended.LoadHubNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/StampProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 5 /* hub */
        start local 5 // org.graalvm.compiler.nodes.ValueNode hub
         2: .line 570
            aload 3 /* graph */
            new org.graalvm.compiler.nodes.java.RawMonitorEnterNode
            dup
            aload 4 /* object */
            aload 5 /* hub */
            aload 1 /* monitorEnter */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorEnterNode.getMonitorId:()Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
            invokespecial org.graalvm.compiler.nodes.java.RawMonitorEnterNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/java/MonitorIdNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.java.RawMonitorEnterNode
            astore 6 /* rawMonitorEnter */
        start local 6 // org.graalvm.compiler.nodes.java.RawMonitorEnterNode rawMonitorEnter
         3: .line 571
            aload 6 /* rawMonitorEnter */
            aload 1 /* monitorEnter */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorEnterNode.stateBefore:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.java.RawMonitorEnterNode.setStateBefore:(Lorg/graalvm/compiler/nodes/FrameState;)V
         4: .line 572
            aload 6 /* rawMonitorEnter */
            aload 1 /* monitorEnter */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorEnterNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.java.RawMonitorEnterNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
         5: .line 573
            aload 3 /* graph */
            aload 1 /* monitorEnter */
            aload 6 /* rawMonitorEnter */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
         6: .line 574
            return
        end local 6 // org.graalvm.compiler.nodes.java.RawMonitorEnterNode rawMonitorEnter
        end local 5 // org.graalvm.compiler.nodes.ValueNode hub
        end local 4 // org.graalvm.compiler.nodes.ValueNode object
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.nodes.java.MonitorEnterNode monitorEnter
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    7     1     monitorEnter  Lorg/graalvm/compiler/nodes/java/MonitorEnterNode;
            0    7     2             tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            0    7     3            graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1    7     4           object  Lorg/graalvm/compiler/nodes/ValueNode;
            2    7     5              hub  Lorg/graalvm/compiler/nodes/ValueNode;
            3    7     6  rawMonitorEnter  Lorg/graalvm/compiler/nodes/java/RawMonitorEnterNode;
    MethodParameters:
              Name  Flags
      monitorEnter  
      tool          
      graph         

  protected void lowerCompareAndSwapNode(org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode);
    descriptor: (Lorg/graalvm/compiler/nodes/java/UnsafeCompareAndSwapNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=9, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode cas
         0: .line 577
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 578
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode.getValueKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 3 /* valueKind */
        start local 3 // jdk.vm.ci.meta.JavaKind valueKind
         2: .line 580
            aload 0 /* this */
            aload 2 /* graph */
            aload 3 /* valueKind */
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode.expected:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* expectedValue */
        start local 4 // org.graalvm.compiler.nodes.ValueNode expectedValue
         3: .line 581
            aload 0 /* this */
            aload 2 /* graph */
            aload 3 /* valueKind */
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode.newValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* newValue */
        start local 5 // org.graalvm.compiler.nodes.ValueNode newValue
         4: .line 583
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            dup
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokespecial org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.address.AddressNode
            astore 6 /* address */
        start local 6 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         5: .line 584
            aload 0 /* this */
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 4 /* expectedValue */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.guessStoreBarrierType:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            astore 7 /* barrierType */
        start local 7 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
         6: .line 585
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.java.LogicCompareAndSwapNode
            dup
            aload 6 /* address */
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 4 /* expectedValue */
            aload 5 /* newValue */
            aload 7 /* barrierType */
            invokespecial org.graalvm.compiler.nodes.java.LogicCompareAndSwapNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.java.LogicCompareAndSwapNode
            astore 8 /* atomicNode */
        start local 8 // org.graalvm.compiler.nodes.java.LogicCompareAndSwapNode atomicNode
         7: .line 586
            aload 8 /* atomicNode */
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.java.LogicCompareAndSwapNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
         8: .line 587
            aload 2 /* graph */
            aload 1 /* cas */
            aload 8 /* atomicNode */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
         9: .line 588
            return
        end local 8 // org.graalvm.compiler.nodes.java.LogicCompareAndSwapNode atomicNode
        end local 7 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        end local 6 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 5 // org.graalvm.compiler.nodes.ValueNode newValue
        end local 4 // org.graalvm.compiler.nodes.ValueNode expectedValue
        end local 3 // jdk.vm.ci.meta.JavaKind valueKind
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.nodes.java.UnsafeCompareAndSwapNode cas
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   10     1            cas  Lorg/graalvm/compiler/nodes/java/UnsafeCompareAndSwapNode;
            1   10     2          graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2   10     3      valueKind  Ljdk/vm/ci/meta/JavaKind;
            3   10     4  expectedValue  Lorg/graalvm/compiler/nodes/ValueNode;
            4   10     5       newValue  Lorg/graalvm/compiler/nodes/ValueNode;
            5   10     6        address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            6   10     7    barrierType  Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            7   10     8     atomicNode  Lorg/graalvm/compiler/nodes/java/LogicCompareAndSwapNode;
    MethodParameters:
      Name  Flags
      cas   

  protected void lowerCompareAndExchangeNode(org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode);
    descriptor: (Lorg/graalvm/compiler/nodes/java/UnsafeCompareAndExchangeNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=10, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode cas
         0: .line 591
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 592
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode.getValueKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 3 /* valueKind */
        start local 3 // jdk.vm.ci.meta.JavaKind valueKind
         2: .line 594
            aload 0 /* this */
            aload 2 /* graph */
            aload 3 /* valueKind */
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode.expected:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* expectedValue */
        start local 4 // org.graalvm.compiler.nodes.ValueNode expectedValue
         3: .line 595
            aload 0 /* this */
            aload 2 /* graph */
            aload 3 /* valueKind */
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode.newValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* newValue */
        start local 5 // org.graalvm.compiler.nodes.ValueNode newValue
         4: .line 597
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            dup
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokespecial org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.address.AddressNode
            astore 6 /* address */
        start local 6 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         5: .line 598
            aload 0 /* this */
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 4 /* expectedValue */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.guessStoreBarrierType:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            astore 7 /* barrierType */
        start local 7 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
         6: .line 599
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.java.ValueCompareAndSwapNode
            dup
            aload 6 /* address */
            aload 4 /* expectedValue */
            aload 5 /* newValue */
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 7 /* barrierType */
            invokespecial org.graalvm.compiler.nodes.java.ValueCompareAndSwapNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.java.ValueCompareAndSwapNode
            astore 8 /* atomicNode */
        start local 8 // org.graalvm.compiler.nodes.java.ValueCompareAndSwapNode atomicNode
         7: .line 600
            aload 0 /* this */
            aload 2 /* graph */
            aload 3 /* valueKind */
            aload 8 /* atomicNode */
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitLoadConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* coercedNode */
        start local 9 // org.graalvm.compiler.nodes.ValueNode coercedNode
         8: .line 601
            aload 8 /* atomicNode */
            aload 1 /* cas */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.java.ValueCompareAndSwapNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
         9: .line 602
            aload 1 /* cas */
            aload 9 /* coercedNode */
            invokevirtual org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        10: .line 603
            aload 2 /* graph */
            aload 1 /* cas */
            aload 8 /* atomicNode */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        11: .line 604
            return
        end local 9 // org.graalvm.compiler.nodes.ValueNode coercedNode
        end local 8 // org.graalvm.compiler.nodes.java.ValueCompareAndSwapNode atomicNode
        end local 7 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        end local 6 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 5 // org.graalvm.compiler.nodes.ValueNode newValue
        end local 4 // org.graalvm.compiler.nodes.ValueNode expectedValue
        end local 3 // jdk.vm.ci.meta.JavaKind valueKind
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.nodes.java.UnsafeCompareAndExchangeNode cas
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   12     1            cas  Lorg/graalvm/compiler/nodes/java/UnsafeCompareAndExchangeNode;
            1   12     2          graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2   12     3      valueKind  Ljdk/vm/ci/meta/JavaKind;
            3   12     4  expectedValue  Lorg/graalvm/compiler/nodes/ValueNode;
            4   12     5       newValue  Lorg/graalvm/compiler/nodes/ValueNode;
            5   12     6        address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            6   12     7    barrierType  Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            7   12     8     atomicNode  Lorg/graalvm/compiler/nodes/java/ValueCompareAndSwapNode;
            8   12     9    coercedNode  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      cas   

  protected void lowerAtomicReadAndWriteNode(org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode);
    descriptor: (Lorg/graalvm/compiler/nodes/java/AtomicReadAndWriteNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=10, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode n
         0: .line 607
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 608
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode.getValueKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 3 /* valueKind */
        start local 3 // jdk.vm.ci.meta.JavaKind valueKind
         2: .line 610
            aload 0 /* this */
            aload 2 /* graph */
            aload 3 /* valueKind */
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode.newValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* newValue */
        start local 4 // org.graalvm.compiler.nodes.ValueNode newValue
         3: .line 612
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            dup
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokespecial org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.address.AddressNode
            astore 5 /* address */
        start local 5 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         4: .line 613
            aload 0 /* this */
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode.newValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.guessStoreBarrierType:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            astore 6 /* barrierType */
        start local 6 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
         5: .line 614
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.target:Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            aload 3 /* valueKind */
            invokestatic org.graalvm.compiler.core.common.LIRKind.fromJavaKind:(Ljdk/vm/ci/code/Architecture;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 7 /* lirAccessKind */
        start local 7 // org.graalvm.compiler.core.common.LIRKind lirAccessKind
         6: .line 615
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode
            dup
            aload 5 /* address */
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 4 /* newValue */
            aload 7 /* lirAccessKind */
            aload 6 /* barrierType */
            invokespecial org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ValueKind;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode
            astore 8 /* memoryRead */
        start local 8 // org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode memoryRead
         7: .line 616
            aload 8 /* memoryRead */
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
         8: .line 618
            aload 0 /* this */
            aload 2 /* graph */
            aload 3 /* valueKind */
            aload 8 /* memoryRead */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitLoadConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* readValue */
        start local 9 // org.graalvm.compiler.nodes.ValueNode readValue
         9: .line 619
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            aload 1 /* n */
            aload 8 /* memoryRead */
            invokevirtual org.graalvm.compiler.nodes.FrameState.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
        10: .line 620
            aload 1 /* n */
            aload 9 /* readValue */
            invokevirtual org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        11: .line 621
            aload 2 /* graph */
            aload 1 /* n */
            aload 8 /* memoryRead */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        12: .line 622
            return
        end local 9 // org.graalvm.compiler.nodes.ValueNode readValue
        end local 8 // org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode memoryRead
        end local 7 // org.graalvm.compiler.core.common.LIRKind lirAccessKind
        end local 6 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        end local 5 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 4 // org.graalvm.compiler.nodes.ValueNode newValue
        end local 3 // jdk.vm.ci.meta.JavaKind valueKind
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode n
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   13     1              n  Lorg/graalvm/compiler/nodes/java/AtomicReadAndWriteNode;
            1   13     2          graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2   13     3      valueKind  Ljdk/vm/ci/meta/JavaKind;
            3   13     4       newValue  Lorg/graalvm/compiler/nodes/ValueNode;
            4   13     5        address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            5   13     6    barrierType  Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            6   13     7  lirAccessKind  Lorg/graalvm/compiler/core/common/LIRKind;
            7   13     8     memoryRead  Lorg/graalvm/compiler/nodes/java/LoweredAtomicReadAndWriteNode;
            9   13     9      readValue  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      n     

  protected void lowerUnsafeLoadNode(org.graalvm.compiler.nodes.extended.RawLoadNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/RawLoadNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.extended.RawLoadNode load
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 628
            aload 1 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.RawLoadNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 3 /* graph */
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 629
            aload 1 /* load */
            instanceof org.graalvm.compiler.nodes.extended.GuardedUnsafeLoadNode
            ifeq 12
         2: .line 630
            aload 1 /* load */
            checkcast org.graalvm.compiler.nodes.extended.GuardedUnsafeLoadNode
            astore 4 /* guardedLoad */
        start local 4 // org.graalvm.compiler.nodes.extended.GuardedUnsafeLoadNode guardedLoad
         3: .line 631
            aload 4 /* guardedLoad */
            invokevirtual org.graalvm.compiler.nodes.extended.GuardedUnsafeLoadNode.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            astore 5 /* guard */
        start local 5 // org.graalvm.compiler.nodes.extended.GuardingNode guard
         4: .line 632
            aload 5 /* guard */
            ifnonnull 9
         5: .line 634
            aload 0 /* this */
            aload 3 /* graph */
            aload 1 /* load */
            aconst_null
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createUnsafeRead:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/extended/RawLoadNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)Lorg/graalvm/compiler/nodes/memory/ReadNode;
            astore 6 /* memoryRead */
        start local 6 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
         6: .line 635
            aload 6 /* memoryRead */
            iconst_0
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.setForceFixed:(Z)V
         7: .line 636
            aload 3 /* graph */
            aload 1 /* load */
            aload 6 /* memoryRead */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        end local 6 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
         8: .line 637
            goto 14
         9: .line 639
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.extended.GuardedUnsafeLoadNode org.graalvm.compiler.nodes.extended.GuardingNode
      StackMap stack:
            aload 0 /* this */
            aload 3 /* graph */
            aload 1 /* load */
            aload 5 /* guard */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createUnsafeRead:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/extended/RawLoadNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)Lorg/graalvm/compiler/nodes/memory/ReadNode;
            astore 6 /* memoryRead */
        start local 6 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
        10: .line 640
            aload 3 /* graph */
            aload 1 /* load */
            aload 6 /* memoryRead */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        end local 6 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
        end local 5 // org.graalvm.compiler.nodes.extended.GuardingNode guard
        end local 4 // org.graalvm.compiler.nodes.extended.GuardedUnsafeLoadNode guardedLoad
        11: .line 642
            goto 14
        12: .line 645
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* graph */
            aload 1 /* load */
            aconst_null
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createUnsafeRead:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/extended/RawLoadNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)Lorg/graalvm/compiler/nodes/memory/ReadNode;
            astore 4 /* memoryRead */
        start local 4 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
        13: .line 646
            aload 3 /* graph */
            aload 1 /* load */
            aload 4 /* memoryRead */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        end local 4 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
        14: .line 648
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.nodes.extended.RawLoadNode load
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   15     1         load  Lorg/graalvm/compiler/nodes/extended/RawLoadNode;
            0   15     2         tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1   15     3        graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            3   11     4  guardedLoad  Lorg/graalvm/compiler/nodes/extended/GuardedUnsafeLoadNode;
            4   11     5        guard  Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            6    8     6   memoryRead  Lorg/graalvm/compiler/nodes/memory/ReadNode;
           10   11     6   memoryRead  Lorg/graalvm/compiler/nodes/memory/ReadNode;
           13   14     4   memoryRead  Lorg/graalvm/compiler/nodes/memory/ReadNode;
    MethodParameters:
      Name  Flags
      load  
      tool  

  protected org.graalvm.compiler.nodes.memory.address.AddressNode createUnsafeAddress(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.nodes.ValueNode object
        start local 3 // org.graalvm.compiler.nodes.ValueNode offset
         0: .line 651
            aload 2 /* object */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 2
            aload 2 /* object */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            invokeinterface jdk.vm.ci.meta.Constant.isDefaultForKind:()Z
            ifeq 2
         1: .line 652
            aload 1 /* graph */
            aload 3 /* offset */
            invokestatic org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/OffsetAddressNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.address.AddressNode
            areturn
         2: .line 654
      StackMap locals:
      StackMap stack:
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            dup
            aload 2 /* object */
            aload 3 /* offset */
            invokespecial org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.address.AddressNode
            areturn
        end local 3 // org.graalvm.compiler.nodes.ValueNode offset
        end local 2 // org.graalvm.compiler.nodes.ValueNode object
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    3     1   graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    3     2  object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     3  offset  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
        Name  Flags
      graph   
      object  
      offset  

  protected org.graalvm.compiler.nodes.memory.ReadNode createUnsafeRead(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.extended.RawLoadNode, org.graalvm.compiler.nodes.extended.GuardingNode);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/extended/RawLoadNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)Lorg/graalvm/compiler/nodes/memory/ReadNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.nodes.extended.RawLoadNode load
        start local 3 // org.graalvm.compiler.nodes.extended.GuardingNode guard
         0: .line 659
            aload 2 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.RawLoadNode.accessKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 4 /* compressible */
        start local 4 // boolean compressible
         3: .line 660
            aload 2 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.RawLoadNode.accessKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* readKind */
        start local 5 // jdk.vm.ci.meta.JavaKind readKind
         4: .line 661
            aload 0 /* this */
            aload 2 /* load */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.extended.RawLoadNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 5 /* readKind */
            iload 4 /* compressible */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.loadStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/JavaKind;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 6 /* loadStamp */
        start local 6 // org.graalvm.compiler.core.common.type.Stamp loadStamp
         5: .line 662
            aload 0 /* this */
            aload 1 /* graph */
            aload 2 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.RawLoadNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.RawLoadNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createUnsafeAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 7 /* address */
        start local 7 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         6: .line 663
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.memory.ReadNode
            dup
            aload 7 /* address */
            aload 2 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.RawLoadNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 6 /* loadStamp */
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.ReadNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.ReadNode
            astore 8 /* memoryRead */
        start local 8 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
         7: .line 664
            aload 3 /* guard */
            ifnonnull 10
         8: .line 667
            aload 8 /* memoryRead */
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.setForceFixed:(Z)V
         9: .line 668
            goto 11
        10: .line 669
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.extended.RawLoadNode org.graalvm.compiler.nodes.extended.GuardingNode int jdk.vm.ci.meta.JavaKind org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.nodes.memory.address.AddressNode org.graalvm.compiler.nodes.memory.ReadNode
      StackMap stack:
            aload 8 /* memoryRead */
            aload 3 /* guard */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.setGuard:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;)V
        11: .line 671
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* graph */
            aload 5 /* readKind */
            aload 8 /* memoryRead */
            iload 4 /* compressible */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitLoadConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 5 /* readKind */
            invokestatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.performBooleanCoercionIfNecessary:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* readValue */
        start local 9 // org.graalvm.compiler.nodes.ValueNode readValue
        12: .line 672
            aload 2 /* load */
            aload 9 /* readValue */
            invokevirtual org.graalvm.compiler.nodes.extended.RawLoadNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        13: .line 673
            aload 8 /* memoryRead */
            areturn
        end local 9 // org.graalvm.compiler.nodes.ValueNode readValue
        end local 8 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
        end local 7 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 6 // org.graalvm.compiler.core.common.type.Stamp loadStamp
        end local 5 // jdk.vm.ci.meta.JavaKind readKind
        end local 4 // boolean compressible
        end local 3 // org.graalvm.compiler.nodes.extended.GuardingNode guard
        end local 2 // org.graalvm.compiler.nodes.extended.RawLoadNode load
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   14     1         graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   14     2          load  Lorg/graalvm/compiler/nodes/extended/RawLoadNode;
            0   14     3         guard  Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            3   14     4  compressible  Z
            4   14     5      readKind  Ljdk/vm/ci/meta/JavaKind;
            5   14     6     loadStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            6   14     7       address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            7   14     8    memoryRead  Lorg/graalvm/compiler/nodes/memory/ReadNode;
           12   14     9     readValue  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      graph  
      load   
      guard  

  protected void lowerUnsafeMemoryLoadNode(org.graalvm.compiler.nodes.extended.UnsafeMemoryLoadNode);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/UnsafeMemoryLoadNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.extended.UnsafeMemoryLoadNode load
         0: .line 677
            aload 1 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryLoadNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 678
            aload 1 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryLoadNode.getKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 3 /* readKind */
        start local 3 // jdk.vm.ci.meta.JavaKind readKind
         2: .line 679
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 3
            aload 3 /* readKind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 680
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aload 0 /* this */
            aload 1 /* load */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryLoadNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* readKind */
            iconst_0
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.loadStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/JavaKind;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 4 /* loadStamp */
        start local 4 // org.graalvm.compiler.core.common.type.Stamp loadStamp
         4: .line 681
            aload 2 /* graph */
            aload 1 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryLoadNode.getAddress:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/OffsetAddressNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.address.AddressNode
            astore 5 /* address */
        start local 5 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         5: .line 682
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.memory.ReadNode
            dup
            aload 5 /* address */
            aload 1 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryLoadNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 4 /* loadStamp */
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.ReadNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.ReadNode
            astore 6 /* memoryRead */
        start local 6 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
         6: .line 685
            aload 6 /* memoryRead */
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.setForceFixed:(Z)V
         7: .line 686
            aload 0 /* this */
            aload 2 /* graph */
            aload 3 /* readKind */
            aload 6 /* memoryRead */
            iconst_0
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitLoadConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 3 /* readKind */
            invokestatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.performBooleanCoercionIfNecessary:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* readValue */
        start local 7 // org.graalvm.compiler.nodes.ValueNode readValue
         8: .line 687
            aload 1 /* load */
            aload 7 /* readValue */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryLoadNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
         9: .line 688
            aload 2 /* graph */
            aload 1 /* load */
            aload 6 /* memoryRead */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        10: .line 689
            return
        end local 7 // org.graalvm.compiler.nodes.ValueNode readValue
        end local 6 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
        end local 5 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 4 // org.graalvm.compiler.core.common.type.Stamp loadStamp
        end local 3 // jdk.vm.ci.meta.JavaKind readKind
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.nodes.extended.UnsafeMemoryLoadNode load
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   11     1        load  Lorg/graalvm/compiler/nodes/extended/UnsafeMemoryLoadNode;
            1   11     2       graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2   11     3    readKind  Ljdk/vm/ci/meta/JavaKind;
            4   11     4   loadStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            5   11     5     address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            6   11     6  memoryRead  Lorg/graalvm/compiler/nodes/memory/ReadNode;
            8   11     7   readValue  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      load  

  private static org.graalvm.compiler.nodes.ValueNode performBooleanCoercionIfNecessary(org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.nodes.ValueNode readValue
        start local 1 // jdk.vm.ci.meta.JavaKind readKind
         0: .line 692
            aload 1 /* readKind */
            getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 4
         1: .line 693
            aload 0 /* readValue */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         2: .line 694
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.calc.IntegerEqualsNode
            dup
            aload 0 /* readValue */
            iconst_0
            aload 2 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(ILorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokespecial org.graalvm.compiler.nodes.calc.IntegerEqualsNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.calc.IntegerEqualsNode
            astore 3 /* eq */
        start local 3 // org.graalvm.compiler.nodes.calc.IntegerEqualsNode eq
         3: .line 695
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.calc.ConditionalNode
            dup
            aload 3 /* eq */
            iconst_0
            aload 2 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forBoolean:(ZLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            iconst_1
            aload 2 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forBoolean:(ZLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokespecial org.graalvm.compiler.nodes.calc.ConditionalNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            areturn
        end local 3 // org.graalvm.compiler.nodes.calc.IntegerEqualsNode eq
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         4: .line 697
      StackMap locals:
      StackMap stack:
            aload 0 /* readValue */
            areturn
        end local 1 // jdk.vm.ci.meta.JavaKind readKind
        end local 0 // org.graalvm.compiler.nodes.ValueNode readValue
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0  readValue  Lorg/graalvm/compiler/nodes/ValueNode;
            0    5     1   readKind  Ljdk/vm/ci/meta/JavaKind;
            2    4     2      graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            3    4     3         eq  Lorg/graalvm/compiler/nodes/calc/IntegerEqualsNode;
    MethodParameters:
           Name  Flags
      readValue  
      readKind   

  protected void lowerUnsafeStoreNode(org.graalvm.compiler.nodes.extended.RawStoreNode);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/RawStoreNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.extended.RawStoreNode store
         0: .line 701
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 702
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 2
            iconst_1
            goto 3
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* compressible */
        start local 3 // boolean compressible
         4: .line 703
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.accessKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 4 /* valueKind */
        start local 4 // jdk.vm.ci.meta.JavaKind valueKind
         5: .line 704
            aload 0 /* this */
            aload 2 /* graph */
            aload 4 /* valueKind */
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            iload 3 /* compressible */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* value */
        start local 5 // org.graalvm.compiler.nodes.ValueNode value
         6: .line 705
            aload 0 /* this */
            aload 2 /* graph */
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createUnsafeAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 6 /* address */
        start local 6 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         7: .line 706
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.memory.WriteNode
            dup
            aload 6 /* address */
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 5 /* value */
            aload 0 /* this */
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.unsafeStoreBarrierType:(Lorg/graalvm/compiler/nodes/extended/RawStoreNode;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.WriteNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.WriteNode
            astore 7 /* write */
        start local 7 // org.graalvm.compiler.nodes.memory.WriteNode write
         8: .line 707
            aload 7 /* write */
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
         9: .line 708
            aload 2 /* graph */
            aload 1 /* store */
            aload 7 /* write */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        10: .line 709
            return
        end local 7 // org.graalvm.compiler.nodes.memory.WriteNode write
        end local 6 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 5 // org.graalvm.compiler.nodes.ValueNode value
        end local 4 // jdk.vm.ci.meta.JavaKind valueKind
        end local 3 // boolean compressible
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.nodes.extended.RawStoreNode store
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   11     1         store  Lorg/graalvm/compiler/nodes/extended/RawStoreNode;
            1   11     2         graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            4   11     3  compressible  Z
            5   11     4     valueKind  Ljdk/vm/ci/meta/JavaKind;
            6   11     5         value  Lorg/graalvm/compiler/nodes/ValueNode;
            7   11     6       address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            8   11     7         write  Lorg/graalvm/compiler/nodes/memory/WriteNode;
    MethodParameters:
       Name  Flags
      store  

  protected void lowerUnsafeMemoryStoreNode(org.graalvm.compiler.nodes.extended.UnsafeMemoryStoreNode);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/UnsafeMemoryStoreNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.extended.UnsafeMemoryStoreNode store
         0: .line 712
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryStoreNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 713
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 2
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryStoreNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 714
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack:
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryStoreNode.getKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 3 /* valueKind */
        start local 3 // jdk.vm.ci.meta.JavaKind valueKind
         3: .line 715
            aload 0 /* this */
            aload 2 /* graph */
            aload 3 /* valueKind */
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryStoreNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            iconst_0
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* value */
        start local 4 // org.graalvm.compiler.nodes.ValueNode value
         4: .line 716
            aload 2 /* graph */
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryStoreNode.getAddress:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/OffsetAddressNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.address.AddressNode
            astore 5 /* address */
        start local 5 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         5: .line 717
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.memory.WriteNode
            dup
            aload 5 /* address */
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryStoreNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 4 /* value */
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.WriteNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.WriteNode
            astore 6 /* write */
        start local 6 // org.graalvm.compiler.nodes.memory.WriteNode write
         6: .line 718
            aload 6 /* write */
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeMemoryStoreNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
         7: .line 719
            aload 2 /* graph */
            aload 1 /* store */
            aload 6 /* write */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
         8: .line 720
            return
        end local 6 // org.graalvm.compiler.nodes.memory.WriteNode write
        end local 5 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 4 // org.graalvm.compiler.nodes.ValueNode value
        end local 3 // jdk.vm.ci.meta.JavaKind valueKind
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.nodes.extended.UnsafeMemoryStoreNode store
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    9     1      store  Lorg/graalvm/compiler/nodes/extended/UnsafeMemoryStoreNode;
            1    9     2      graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            3    9     3  valueKind  Ljdk/vm/ci/meta/JavaKind;
            4    9     4      value  Lorg/graalvm/compiler/nodes/ValueNode;
            5    9     5    address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            6    9     6      write  Lorg/graalvm/compiler/nodes/memory/WriteNode;
    MethodParameters:
       Name  Flags
      store  

  protected void lowerJavaReadNode(org.graalvm.compiler.nodes.extended.JavaReadNode);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/JavaReadNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.extended.JavaReadNode read
         0: .line 723
            aload 1 /* read */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaReadNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 724
            aload 1 /* read */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaReadNode.getReadKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 3 /* valueKind */
        start local 3 // jdk.vm.ci.meta.JavaKind valueKind
         2: .line 725
            aload 0 /* this */
            aload 1 /* read */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.extended.JavaReadNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* valueKind */
            aload 1 /* read */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaReadNode.isCompressible:()Z
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.loadStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/JavaKind;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 4 /* loadStamp */
        start local 4 // org.graalvm.compiler.core.common.type.Stamp loadStamp
         3: .line 727
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.memory.ReadNode
            dup
            aload 1 /* read */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaReadNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            aload 1 /* read */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaReadNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 4 /* loadStamp */
            aload 1 /* read */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaReadNode.getBarrierType:()Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.ReadNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.ReadNode
            astore 5 /* memoryRead */
        start local 5 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
         4: .line 728
            aload 1 /* read */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaReadNode.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            astore 6 /* guard */
        start local 6 // org.graalvm.compiler.nodes.extended.GuardingNode guard
         5: .line 729
            aload 0 /* this */
            aload 2 /* graph */
            aload 3 /* valueKind */
            aload 5 /* memoryRead */
            aload 1 /* read */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaReadNode.isCompressible:()Z
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitLoadConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* readValue */
        start local 7 // org.graalvm.compiler.nodes.ValueNode readValue
         6: .line 730
            aload 6 /* guard */
            ifnonnull 9
         7: .line 733
            aload 5 /* memoryRead */
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.setForceFixed:(Z)V
         8: .line 734
            goto 10
         9: .line 735
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.extended.JavaReadNode org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.JavaKind org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.nodes.memory.ReadNode org.graalvm.compiler.nodes.extended.GuardingNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 5 /* memoryRead */
            aload 6 /* guard */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.setGuard:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;)V
        10: .line 737
      StackMap locals:
      StackMap stack:
            aload 1 /* read */
            aload 7 /* readValue */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaReadNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        11: .line 738
            aload 2 /* graph */
            aload 1 /* read */
            aload 5 /* memoryRead */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/graph/Node;)V
        12: .line 739
            return
        end local 7 // org.graalvm.compiler.nodes.ValueNode readValue
        end local 6 // org.graalvm.compiler.nodes.extended.GuardingNode guard
        end local 5 // org.graalvm.compiler.nodes.memory.ReadNode memoryRead
        end local 4 // org.graalvm.compiler.core.common.type.Stamp loadStamp
        end local 3 // jdk.vm.ci.meta.JavaKind valueKind
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.nodes.extended.JavaReadNode read
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   13     1        read  Lorg/graalvm/compiler/nodes/extended/JavaReadNode;
            1   13     2       graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2   13     3   valueKind  Ljdk/vm/ci/meta/JavaKind;
            3   13     4   loadStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            4   13     5  memoryRead  Lorg/graalvm/compiler/nodes/memory/ReadNode;
            5   13     6       guard  Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            6   13     7   readValue  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      read  

  protected void lowerJavaWriteNode(org.graalvm.compiler.nodes.extended.JavaWriteNode);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/JavaWriteNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.extended.JavaWriteNode write
         0: .line 742
            aload 1 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaWriteNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 743
            aload 0 /* this */
            aload 2 /* graph */
            aload 1 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaWriteNode.getWriteKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 1 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaWriteNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaWriteNode.isCompressible:()Z
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 3 /* value */
        start local 3 // org.graalvm.compiler.nodes.ValueNode value
         2: .line 744
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.memory.WriteNode
            dup
            aload 1 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaWriteNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            aload 1 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaWriteNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 3 /* value */
            aload 1 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaWriteNode.getBarrierType:()Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.WriteNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.WriteNode
            astore 4 /* memoryWrite */
        start local 4 // org.graalvm.compiler.nodes.memory.WriteNode memoryWrite
         3: .line 745
            aload 4 /* memoryWrite */
            aload 1 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaWriteNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
         4: .line 746
            aload 2 /* graph */
            aload 1 /* write */
            aload 4 /* memoryWrite */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
         5: .line 747
            aload 4 /* memoryWrite */
            aload 1 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.JavaWriteNode.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.setGuard:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;)V
         6: .line 748
            return
        end local 4 // org.graalvm.compiler.nodes.memory.WriteNode memoryWrite
        end local 3 // org.graalvm.compiler.nodes.ValueNode value
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.nodes.extended.JavaWriteNode write
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    7     1        write  Lorg/graalvm/compiler/nodes/extended/JavaWriteNode;
            1    7     2        graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    7     3        value  Lorg/graalvm/compiler/nodes/ValueNode;
            3    7     4  memoryWrite  Lorg/graalvm/compiler/nodes/memory/WriteNode;
    MethodParameters:
       Name  Flags
      write  

  protected void lowerCommitAllocationNode(org.graalvm.compiler.nodes.virtual.CommitAllocationNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/virtual/CommitAllocationNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=24, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.virtual.CommitAllocationNode commit
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 752
            aload 1 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 3 /* graph */
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 753
            aload 3 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            getstatic org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.FIXED_DEOPTS:Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            if_acmpne 102
         2: .line 754
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* recursiveLowerings */
        start local 4 // java.util.List recursiveLowerings
         3: .line 756
            aload 1 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getVirtualObjects:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray org.graalvm.compiler.nodes.ValueNode
            astore 5 /* allocations */
        start local 5 // org.graalvm.compiler.nodes.ValueNode[] allocations
         4: .line 757
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            astore 6 /* omittedValues */
        start local 6 // java.util.BitSet omittedValues
         5: .line 758
            iconst_0
            istore 7 /* valuePos */
        start local 7 // int valuePos
         6: .line 759
            iconst_0
            istore 8 /* objIndex */
        start local 8 // int objIndex
         7: goto 57
         8: .line 760
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph java.util.List org.graalvm.compiler.nodes.ValueNode[] java.util.BitSet int int
      StackMap stack:
            aload 1 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getVirtualObjects:()Ljava/util/List;
            iload 8 /* objIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            astore 9 /* virtual */
        start local 9 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
         9: .line 761
            aconst_null
            astore 10
            aconst_null
            astore 11
        10: aload 3 /* graph */
            aload 9 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.withNodeSourcePosition:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 12 /* nsp */
        start local 12 // org.graalvm.compiler.debug.DebugCloseable nsp
        11: .line 762
            aload 9 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
            istore 13 /* entryCount */
        start local 13 // int entryCount
        12: .line 764
            aload 9 /* virtual */
            instanceof org.graalvm.compiler.nodes.virtual.VirtualInstanceNode
            ifeq 15
        13: .line 765
            aload 3 /* graph */
            aload 0 /* this */
            aload 9 /* virtual */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createNewInstanceFromVirtual:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/nodes/java/NewInstanceNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.java.AbstractNewObjectNode
            astore 14 /* newObject */
        start local 14 // org.graalvm.compiler.nodes.java.AbstractNewObjectNode newObject
        14: .line 766
            goto 16
        end local 14 // org.graalvm.compiler.nodes.java.AbstractNewObjectNode newObject
        15: .line 767
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph java.util.List org.graalvm.compiler.nodes.ValueNode[] java.util.BitSet int int org.graalvm.compiler.nodes.virtual.VirtualObjectNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable int
      StackMap stack:
            aload 3 /* graph */
            aload 0 /* this */
            aload 9 /* virtual */
            iload 13 /* entryCount */
            aload 3 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(ILorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createNewArrayFromVirtual:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/java/NewArrayNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.java.AbstractNewObjectNode
            astore 14 /* newObject */
        start local 14 // org.graalvm.compiler.nodes.java.AbstractNewObjectNode newObject
        16: .line 770
      StackMap locals: org.graalvm.compiler.nodes.java.AbstractNewObjectNode
      StackMap stack:
            aload 4 /* recursiveLowerings */
            aload 14 /* newObject */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 771
            aload 3 /* graph */
            aload 1 /* commit */
            aload 14 /* newObject */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        18: .line 772
            aload 5 /* allocations */
            iload 8 /* objIndex */
            aload 14 /* newObject */
            aastore
        19: .line 773
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        20: goto 49
        21: .line 774
      StackMap locals: int
      StackMap stack:
            aload 1 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getValues:()Ljava/util/List;
            iload 7 /* valuePos */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 16 /* value */
        start local 16 // org.graalvm.compiler.nodes.ValueNode value
        22: .line 775
            aload 16 /* value */
            instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            ifeq 24
        23: .line 776
            aload 5 /* allocations */
            aload 1 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getVirtualObjects:()Ljava/util/List;
            aload 16 /* value */
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
            aaload
            astore 16 /* value */
        24: .line 778
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 16 /* value */
            ifnonnull 27
        25: .line 779
            aload 6 /* omittedValues */
            iload 7 /* valuePos */
            invokevirtual java.util.BitSet.set:(I)V
        26: .line 780
            goto 47
      StackMap locals:
      StackMap stack:
        27: aload 16 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 28
            aload 16 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            invokeinterface jdk.vm.ci.meta.Constant.isDefaultForKind:()Z
            ifne 47
        28: .line 782
      StackMap locals:
      StackMap stack:
            aload 16 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 17 /* valueKind */
        start local 17 // jdk.vm.ci.meta.JavaKind valueKind
        29: .line 783
            aload 9 /* virtual */
            iload 15 /* i */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryKind:(I)Ljdk/vm/ci/meta/JavaKind;
            astore 18 /* entryKind */
        start local 18 // jdk.vm.ci.meta.JavaKind entryKind
        30: .line 786
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 33
            aload 17 /* valueKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 18 /* entryKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 33
        31: .line 787
            aload 17 /* valueKind */
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 33
            aload 17 /* valueKind */
            getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 33
            aload 17 /* valueKind */
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 32
            aload 9 /* virtual */
            instanceof org.graalvm.compiler.nodes.virtual.VirtualArrayNode
            ifne 33
      StackMap locals: jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind
      StackMap stack:
        32: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        33: .line 788
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 19 /* address */
        start local 19 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        34: .line 789
            aconst_null
            astore 20 /* barrierType */
        start local 20 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        35: .line 790
            aload 9 /* virtual */
            instanceof org.graalvm.compiler.nodes.virtual.VirtualInstanceNode
            ifeq 42
        36: .line 791
            aload 9 /* virtual */
            checkcast org.graalvm.compiler.nodes.virtual.VirtualInstanceNode
            iload 15 /* i */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualInstanceNode.field:(I)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 21 /* field */
        start local 21 // jdk.vm.ci.meta.ResolvedJavaField field
        37: .line 792
            aload 0 /* this */
            aload 21 /* field */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.fieldOffset:(Ljdk/vm/ci/meta/ResolvedJavaField;)I
            i2l
            lstore 22 /* offset */
        start local 22 // long offset
        38: .line 793
            lload 22 /* offset */
            lconst_0
            lcmp
            iflt 44
        39: .line 794
            aload 0 /* this */
            aload 3 /* graph */
            aload 14 /* newObject */
            lload 22 /* offset */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createOffsetAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;J)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 19 /* address */
        40: .line 795
            aload 0 /* this */
            aload 21 /* field */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.fieldInitializationBarrier:(Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            astore 20 /* barrierType */
        end local 22 // long offset
        end local 21 // jdk.vm.ci.meta.ResolvedJavaField field
        41: .line 797
            goto 44
        42: .line 798
      StackMap locals: org.graalvm.compiler.nodes.memory.address.AddressNode org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType
      StackMap stack:
            aload 0 /* this */
            aload 3 /* graph */
            aload 14 /* newObject */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 18 /* entryKind */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            iload 15 /* i */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 18 /* entryKind */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            imul
            iadd
            i2l
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createOffsetAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;J)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 19 /* address */
        43: .line 799
            aload 0 /* this */
            aload 14 /* newObject */
            aload 18 /* entryKind */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.arrayInitializationBarrier:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            astore 20 /* barrierType */
        44: .line 801
      StackMap locals:
      StackMap stack:
            aload 19 /* address */
            ifnull 47
        45: .line 802
            new org.graalvm.compiler.nodes.memory.WriteNode
            dup
            aload 19 /* address */
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.init:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 0 /* this */
            aload 3 /* graph */
            aload 18 /* entryKind */
            aload 16 /* value */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 20 /* barrierType */
            invokespecial org.graalvm.compiler.nodes.memory.WriteNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            astore 21 /* write */
        start local 21 // org.graalvm.compiler.nodes.memory.WriteNode write
        46: .line 803
            aload 3 /* graph */
            aload 14 /* newObject */
            aload 3 /* graph */
            aload 21 /* write */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FixedNode
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        end local 21 // org.graalvm.compiler.nodes.memory.WriteNode write
        end local 20 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        end local 19 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 18 // jdk.vm.ci.meta.JavaKind entryKind
        end local 17 // jdk.vm.ci.meta.JavaKind valueKind
        47: .line 806
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph java.util.List org.graalvm.compiler.nodes.ValueNode[] java.util.BitSet int int org.graalvm.compiler.nodes.virtual.VirtualObjectNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable int org.graalvm.compiler.nodes.java.AbstractNewObjectNode int org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            iinc 7 /* valuePos */ 1
        end local 16 // org.graalvm.compiler.nodes.ValueNode value
        48: .line 773
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        49: iload 15 /* i */
            iload 13 /* entryCount */
            if_icmplt 21
        end local 15 // int i
        end local 14 // org.graalvm.compiler.nodes.java.AbstractNewObjectNode newObject
        end local 13 // int entryCount
        50: .line 808
            aload 12 /* nsp */
            ifnull 56
            aload 12 /* nsp */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
            goto 56
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph java.util.List org.graalvm.compiler.nodes.ValueNode[] java.util.BitSet int int org.graalvm.compiler.nodes.virtual.VirtualObjectNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: java.lang.Throwable
        51: astore 10
            aload 12 /* nsp */
            ifnull 52
            aload 12 /* nsp */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 12 // org.graalvm.compiler.debug.DebugCloseable nsp
      StackMap locals:
      StackMap stack:
        52: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        53: astore 11
            aload 10
            ifnonnull 54
            aload 11
            astore 10
            goto 55
      StackMap locals:
      StackMap stack:
        54: aload 10
            aload 11
            if_acmpeq 55
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        55: aload 10
            athrow
        end local 9 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        56: .line 759
      StackMap locals:
      StackMap stack:
            iinc 8 /* objIndex */ 1
      StackMap locals:
      StackMap stack:
        57: iload 8 /* objIndex */
            aload 1 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getVirtualObjects:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 8
        end local 8 // int objIndex
        58: .line 810
            iconst_0
            istore 7 /* valuePos */
        59: .line 812
            iconst_0
            istore 8 /* objIndex */
        start local 8 // int objIndex
        60: goto 95
        61: .line 813
      StackMap locals:
      StackMap stack:
            aload 1 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getVirtualObjects:()Ljava/util/List;
            iload 8 /* objIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            astore 9 /* virtual */
        start local 9 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        62: .line 814
            aconst_null
            astore 10
            aconst_null
            astore 11
        63: aload 3 /* graph */
            aload 9 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.withNodeSourcePosition:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 12 /* nsp */
        start local 12 // org.graalvm.compiler.debug.DebugCloseable nsp
        64: .line 815
            aload 9 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
            istore 13 /* entryCount */
        start local 13 // int entryCount
        65: .line 816
            aload 5 /* allocations */
            iload 8 /* objIndex */
            aaload
            astore 14 /* newObject */
        start local 14 // org.graalvm.compiler.nodes.ValueNode newObject
        66: .line 817
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        67: goto 87
        68: .line 818
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph java.util.List org.graalvm.compiler.nodes.ValueNode[] java.util.BitSet int int org.graalvm.compiler.nodes.virtual.VirtualObjectNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable int org.graalvm.compiler.nodes.ValueNode int
      StackMap stack:
            aload 6 /* omittedValues */
            iload 7 /* valuePos */
            invokevirtual java.util.BitSet.get:(I)Z
            ifeq 85
        69: .line 819
            aload 1 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getValues:()Ljava/util/List;
            iload 7 /* valuePos */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 16 /* value */
        start local 16 // org.graalvm.compiler.nodes.ValueNode value
        70: .line 820
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 71
            aload 16 /* value */
            instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            ifne 71
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        71: .line 821
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 5 /* allocations */
            aload 1 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getVirtualObjects:()Ljava/util/List;
            aload 16 /* value */
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
            aaload
            astore 17 /* allocValue */
        start local 17 // org.graalvm.compiler.nodes.ValueNode allocValue
        72: .line 822
            aload 17 /* allocValue */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 73
            aload 17 /* allocValue */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            invokeinterface jdk.vm.ci.meta.Constant.isDefaultForKind:()Z
            ifne 85
        73: .line 823
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 75
            aload 9 /* virtual */
            iload 15 /* i */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryKind:(I)Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 74
            aload 17 /* allocValue */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 75
      StackMap locals:
      StackMap stack:
        74: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        75: .line 826
      StackMap locals:
      StackMap stack:
            aload 9 /* virtual */
            instanceof org.graalvm.compiler.nodes.virtual.VirtualInstanceNode
            ifeq 80
        76: .line 827
            aload 9 /* virtual */
            checkcast org.graalvm.compiler.nodes.virtual.VirtualInstanceNode
            astore 20 /* virtualInstance */
        start local 20 // org.graalvm.compiler.nodes.virtual.VirtualInstanceNode virtualInstance
        77: .line 828
            aload 0 /* this */
            aload 3 /* graph */
            aload 14 /* newObject */
            aload 20 /* virtualInstance */
            iload 15 /* i */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualInstanceNode.field:(I)Ljdk/vm/ci/meta/ResolvedJavaField;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createFieldAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 18 /* address */
        start local 18 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        78: .line 829
            aload 0 /* this */
            aload 20 /* virtualInstance */
            iload 15 /* i */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualInstanceNode.field:(I)Ljdk/vm/ci/meta/ResolvedJavaField;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.fieldStoreBarrierType:(Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            astore 19 /* barrierType */
        end local 20 // org.graalvm.compiler.nodes.virtual.VirtualInstanceNode virtualInstance
        start local 19 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        79: .line 830
            goto 82
        end local 19 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        end local 18 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        80: .line 831
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* graph */
            aload 14 /* newObject */
            aload 9 /* virtual */
            iload 15 /* i */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryKind:(I)Ljdk/vm/ci/meta/JavaKind;
            iload 15 /* i */
            aload 3 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(ILorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createArrayAddress:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 18 /* address */
        start local 18 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        81: .line 832
            aload 0 /* this */
            aload 14 /* newObject */
            aload 9 /* virtual */
            iload 15 /* i */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryKind:(I)Ljdk/vm/ci/meta/JavaKind;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.arrayStoreBarrierType:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            astore 19 /* barrierType */
        start local 19 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        82: .line 834
      StackMap locals: org.graalvm.compiler.nodes.memory.address.AddressNode org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType
      StackMap stack:
            aload 18 /* address */
            ifnull 85
        83: .line 835
            new org.graalvm.compiler.nodes.memory.WriteNode
            dup
            aload 18 /* address */
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.init:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 0 /* this */
            aload 3 /* graph */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            aload 17 /* allocValue */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 19 /* barrierType */
            invokespecial org.graalvm.compiler.nodes.memory.WriteNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            astore 20 /* write */
        start local 20 // org.graalvm.compiler.nodes.memory.WriteNode write
        84: .line 836
            aload 3 /* graph */
            aload 1 /* commit */
            aload 3 /* graph */
            aload 20 /* write */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        end local 20 // org.graalvm.compiler.nodes.memory.WriteNode write
        end local 19 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        end local 18 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 17 // org.graalvm.compiler.nodes.ValueNode allocValue
        end local 16 // org.graalvm.compiler.nodes.ValueNode value
        85: .line 840
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph java.util.List org.graalvm.compiler.nodes.ValueNode[] java.util.BitSet int int org.graalvm.compiler.nodes.virtual.VirtualObjectNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable int org.graalvm.compiler.nodes.ValueNode int
      StackMap stack:
            iinc 7 /* valuePos */ 1
        86: .line 817
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        87: iload 15 /* i */
            iload 13 /* entryCount */
            if_icmplt 68
        end local 15 // int i
        end local 14 // org.graalvm.compiler.nodes.ValueNode newObject
        end local 13 // int entryCount
        88: .line 842
            aload 12 /* nsp */
            ifnull 94
            aload 12 /* nsp */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
            goto 94
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph java.util.List org.graalvm.compiler.nodes.ValueNode[] java.util.BitSet int int org.graalvm.compiler.nodes.virtual.VirtualObjectNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: java.lang.Throwable
        89: astore 10
            aload 12 /* nsp */
            ifnull 90
            aload 12 /* nsp */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 12 // org.graalvm.compiler.debug.DebugCloseable nsp
      StackMap locals:
      StackMap stack:
        90: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        91: astore 11
            aload 10
            ifnonnull 92
            aload 11
            astore 10
            goto 93
      StackMap locals:
      StackMap stack:
        92: aload 10
            aload 11
            if_acmpeq 93
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        93: aload 10
            athrow
        end local 9 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        94: .line 812
      StackMap locals:
      StackMap stack:
            iinc 8 /* objIndex */ 1
      StackMap locals:
      StackMap stack:
        95: iload 8 /* objIndex */
            aload 1 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getVirtualObjects:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 61
        end local 8 // int objIndex
        96: .line 845
            aload 0 /* this */
            aload 2 /* tool */
            aload 1 /* commit */
            aload 5 /* allocations */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.finishAllocatedObjects:(Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/nodes/virtual/CommitAllocationNode;[Lorg/graalvm/compiler/nodes/ValueNode;)V
        97: .line 846
            aload 3 /* graph */
            aload 1 /* commit */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        98: .line 848
            aload 4 /* recursiveLowerings */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 101
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph java.util.List org.graalvm.compiler.nodes.ValueNode[] java.util.BitSet int top java.util.Iterator
      StackMap stack:
        99: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.AbstractNewObjectNode
            astore 8 /* recursiveLowering */
        start local 8 // org.graalvm.compiler.nodes.java.AbstractNewObjectNode recursiveLowering
       100: .line 849
            aload 8 /* recursiveLowering */
            aload 2 /* tool */
            invokevirtual org.graalvm.compiler.nodes.java.AbstractNewObjectNode.lower:(Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
        end local 8 // org.graalvm.compiler.nodes.java.AbstractNewObjectNode recursiveLowering
       101: .line 848
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 99
        end local 7 // int valuePos
        end local 6 // java.util.BitSet omittedValues
        end local 5 // org.graalvm.compiler.nodes.ValueNode[] allocations
        end local 4 // java.util.List recursiveLowerings
       102: .line 853
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.nodes.virtual.CommitAllocationNode commit
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0  103     0                this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0  103     1              commit  Lorg/graalvm/compiler/nodes/virtual/CommitAllocationNode;
            0  103     2                tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1  103     3               graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            3  102     4  recursiveLowerings  Ljava/util/List<Lorg/graalvm/compiler/nodes/java/AbstractNewObjectNode;>;
            4  102     5         allocations  [Lorg/graalvm/compiler/nodes/ValueNode;
            5  102     6       omittedValues  Ljava/util/BitSet;
            6  102     7            valuePos  I
            7   58     8            objIndex  I
            9   56     9             virtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
           11   52    12                 nsp  Lorg/graalvm/compiler/debug/DebugCloseable;
           12   50    13          entryCount  I
           14   15    14           newObject  Lorg/graalvm/compiler/nodes/java/AbstractNewObjectNode;
           16   50    14           newObject  Lorg/graalvm/compiler/nodes/java/AbstractNewObjectNode;
           20   50    15                   i  I
           22   48    16               value  Lorg/graalvm/compiler/nodes/ValueNode;
           29   47    17           valueKind  Ljdk/vm/ci/meta/JavaKind;
           30   47    18           entryKind  Ljdk/vm/ci/meta/JavaKind;
           34   47    19             address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
           35   47    20         barrierType  Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
           37   41    21               field  Ljdk/vm/ci/meta/ResolvedJavaField;
           38   41    22              offset  J
           46   47    21               write  Lorg/graalvm/compiler/nodes/memory/WriteNode;
           60   96     8            objIndex  I
           62   94     9             virtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
           64   90    12                 nsp  Lorg/graalvm/compiler/debug/DebugCloseable;
           65   88    13          entryCount  I
           66   88    14           newObject  Lorg/graalvm/compiler/nodes/ValueNode;
           67   88    15                   i  I
           70   85    16               value  Lorg/graalvm/compiler/nodes/ValueNode;
           72   85    17          allocValue  Lorg/graalvm/compiler/nodes/ValueNode;
           78   80    18             address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
           81   85    18             address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
           79   80    19         barrierType  Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
           82   85    19         barrierType  Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
           77   79    20     virtualInstance  Lorg/graalvm/compiler/nodes/virtual/VirtualInstanceNode;
           84   85    20               write  Lorg/graalvm/compiler/nodes/memory/WriteNode;
          100  101     8   recursiveLowering  Lorg/graalvm/compiler/nodes/java/AbstractNewObjectNode;
      Exception table:
        from    to  target  type
          11    50      51  any
          10    53      53  any
          64    88      89  any
          63    91      91  any
    MethodParameters:
        Name  Flags
      commit  
      tool    

  public org.graalvm.compiler.nodes.java.NewInstanceNode createNewInstanceFromVirtual(org.graalvm.compiler.nodes.virtual.VirtualObjectNode);
    descriptor: (Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/nodes/java/NewInstanceNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
         0: .line 856
            new org.graalvm.compiler.nodes.java.NewInstanceNode
            dup
            aload 1 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.type:()Ljdk/vm/ci/meta/ResolvedJavaType;
            iconst_1
            invokespecial org.graalvm.compiler.nodes.java.NewInstanceNode.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;Z)V
            areturn
        end local 1 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    1     1  virtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
    MethodParameters:
         Name  Flags
      virtual  

  protected org.graalvm.compiler.nodes.java.NewArrayNode createNewArrayFromVirtual(org.graalvm.compiler.nodes.virtual.VirtualObjectNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/java/NewArrayNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        start local 2 // org.graalvm.compiler.nodes.ValueNode length
         0: .line 860
            new org.graalvm.compiler.nodes.java.NewArrayNode
            dup
            aload 1 /* virtual */
            checkcast org.graalvm.compiler.nodes.virtual.VirtualArrayNode
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualArrayNode.componentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 2 /* length */
            iconst_1
            invokespecial org.graalvm.compiler.nodes.java.NewArrayNode.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/ValueNode;Z)V
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode length
        end local 1 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    1     1  virtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
            0    1     2   length  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
         Name  Flags
      virtual  
      length   

  public void finishAllocatedObjects(org.graalvm.compiler.nodes.spi.LoweringTool, org.graalvm.compiler.nodes.virtual.CommitAllocationNode, org.graalvm.compiler.nodes.ValueNode[]);
    descriptor: (Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/nodes/virtual/CommitAllocationNode;[Lorg/graalvm/compiler/nodes/ValueNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        start local 2 // org.graalvm.compiler.nodes.virtual.CommitAllocationNode commit
        start local 3 // org.graalvm.compiler.nodes.ValueNode[] allocations
         0: .line 864
            aload 2 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 4 /* graph */
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 865
            iconst_0
            istore 5 /* objIndex */
        start local 5 // int objIndex
         2: goto 7
         3: .line 866
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int
      StackMap stack:
            aload 4 /* graph */
            new org.graalvm.compiler.nodes.extended.FixedValueAnchorNode
            dup
            aload 3 /* allocations */
            iload 5 /* objIndex */
            aaload
            invokespecial org.graalvm.compiler.nodes.extended.FixedValueAnchorNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.extended.FixedValueAnchorNode
            astore 6 /* anchor */
        start local 6 // org.graalvm.compiler.nodes.extended.FixedValueAnchorNode anchor
         4: .line 867
            aload 3 /* allocations */
            iload 5 /* objIndex */
            aload 6 /* anchor */
            aastore
         5: .line 868
            aload 4 /* graph */
            aload 2 /* commit */
            aload 6 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        end local 6 // org.graalvm.compiler.nodes.extended.FixedValueAnchorNode anchor
         6: .line 865
            iinc 5 /* objIndex */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* objIndex */
            aload 2 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getVirtualObjects:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 5 // int objIndex
         8: .line 880
            aconst_null
            astore 5 /* enters */
        start local 5 // java.util.ArrayList enters
         9: .line 881
            iconst_0
            istore 6 /* objIndex */
        start local 6 // int objIndex
        10: goto 28
        11: .line 882
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.StructuredGraph java.util.ArrayList int
      StackMap stack:
            aload 2 /* commit */
            iload 6 /* objIndex */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getLocks:(I)Ljava/util/List;
            astore 7 /* locks */
        start local 7 // java.util.List locks
        12: .line 883
            aload 7 /* locks */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 16
        13: .line 885
            new java.util.ArrayList
            dup
            aload 7 /* locks */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 8 /* newList */
        start local 8 // java.util.ArrayList newList
        14: .line 886
            aload 8 /* newList */
            invokedynamic compare()Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  org/graalvm/compiler/replacements/DefaultJavaLoweringProvider.lambda$0(Lorg/graalvm/compiler/nodes/java/MonitorIdNode;Lorg/graalvm/compiler/nodes/java/MonitorIdNode;)I (6)
                  (Lorg/graalvm/compiler/nodes/java/MonitorIdNode;Lorg/graalvm/compiler/nodes/java/MonitorIdNode;)I
            invokevirtual java.util.ArrayList.sort:(Ljava/util/Comparator;)V
        15: .line 887
            aload 8 /* newList */
            astore 7 /* locks */
        end local 8 // java.util.ArrayList newList
        16: .line 889
      StackMap locals: java.util.List
      StackMap stack:
            iconst_m1
            istore 8 /* lastDepth */
        start local 8 // int lastDepth
        17: .line 890
            aload 7 /* locks */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 26
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.StructuredGraph java.util.ArrayList int java.util.List int top java.util.Iterator
      StackMap stack:
        18: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.MonitorIdNode
            astore 9 /* monitorId */
        start local 9 // org.graalvm.compiler.nodes.java.MonitorIdNode monitorId
        19: .line 891
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 20
            iload 8 /* lastDepth */
            aload 9 /* monitorId */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorIdNode.getLockDepth:()I
            if_icmplt 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 892
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.StructuredGraph java.util.ArrayList int java.util.List int org.graalvm.compiler.nodes.java.MonitorIdNode java.util.Iterator
      StackMap stack:
            aload 9 /* monitorId */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorIdNode.getLockDepth:()I
            istore 8 /* lastDepth */
        21: .line 893
            aload 4 /* graph */
            new org.graalvm.compiler.nodes.java.MonitorEnterNode
            dup
            aload 3 /* allocations */
            iload 6 /* objIndex */
            aaload
            aload 9 /* monitorId */
            invokespecial org.graalvm.compiler.nodes.java.MonitorEnterNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/java/MonitorIdNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.java.MonitorEnterNode
            astore 11 /* enter */
        start local 11 // org.graalvm.compiler.nodes.java.MonitorEnterNode enter
        22: .line 894
            aload 4 /* graph */
            aload 2 /* commit */
            aload 11 /* enter */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        23: .line 895
            aload 5 /* enters */
            ifnonnull 25
        24: .line 896
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* enters */
        25: .line 898
      StackMap locals: org.graalvm.compiler.nodes.java.MonitorEnterNode
      StackMap stack:
            aload 5 /* enters */
            aload 11 /* enter */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // org.graalvm.compiler.nodes.java.MonitorEnterNode enter
        end local 9 // org.graalvm.compiler.nodes.java.MonitorIdNode monitorId
        26: .line 890
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.StructuredGraph java.util.ArrayList int java.util.List int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        end local 8 // int lastDepth
        end local 7 // java.util.List locks
        27: .line 881
            iinc 6 /* objIndex */ 1
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.StructuredGraph java.util.ArrayList int
      StackMap stack:
        28: iload 6 /* objIndex */
            aload 2 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getVirtualObjects:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 11
        end local 6 // int objIndex
        29: .line 901
            aload 2 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 38
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.StructuredGraph java.util.ArrayList top java.util.Iterator
      StackMap stack:
        30: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 6 /* usage */
        start local 6 // org.graalvm.compiler.graph.Node usage
        31: .line 902
            aload 6 /* usage */
            instanceof org.graalvm.compiler.nodes.virtual.AllocatedObjectNode
            ifeq 36
        32: .line 903
            aload 6 /* usage */
            checkcast org.graalvm.compiler.nodes.virtual.AllocatedObjectNode
            astore 8 /* addObject */
        start local 8 // org.graalvm.compiler.nodes.virtual.AllocatedObjectNode addObject
        33: .line 904
            aload 2 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getVirtualObjects:()Ljava/util/List;
            aload 8 /* addObject */
            invokevirtual org.graalvm.compiler.nodes.virtual.AllocatedObjectNode.getVirtualObject:()Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
            istore 9 /* index */
        start local 9 // int index
        34: .line 905
            aload 8 /* addObject */
            aload 3 /* allocations */
            iload 9 /* index */
            aaload
            invokevirtual org.graalvm.compiler.nodes.virtual.AllocatedObjectNode.replaceAtUsagesAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        end local 9 // int index
        end local 8 // org.graalvm.compiler.nodes.virtual.AllocatedObjectNode addObject
        35: .line 906
            goto 38
        36: .line 907
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.StructuredGraph java.util.ArrayList org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 37
            aload 5 /* enters */
            ifnonnull 37
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        37: .line 908
      StackMap locals:
      StackMap stack:
            aload 2 /* commit */
            getstatic org.graalvm.compiler.nodeinfo.InputType.Memory:Lorg/graalvm/compiler/nodeinfo/InputType;
            aload 5 /* enters */
            aload 5 /* enters */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
        end local 6 // org.graalvm.compiler.graph.Node usage
        38: .line 901
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.StructuredGraph java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        39: .line 911
            aload 5 /* enters */
            ifnull 44
        40: .line 912
            aload 5 /* enters */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 7
            goto 43
      StackMap locals:
      StackMap stack:
        41: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.MonitorEnterNode
            astore 6 /* enter */
        start local 6 // org.graalvm.compiler.nodes.java.MonitorEnterNode enter
        42: .line 913
            aload 6 /* enter */
            aload 1 /* tool */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorEnterNode.lower:(Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
        end local 6 // org.graalvm.compiler.nodes.java.MonitorEnterNode enter
        43: .line 912
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 41
        44: .line 916
      StackMap locals: org.graalvm.compiler.replacements.DefaultJavaLoweringProvider org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.StructuredGraph java.util.ArrayList
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$assertionsDisabled:Z
            ifne 45
            aload 2 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.hasNoUsages:()Z
            ifne 45
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        45: .line 917
      StackMap locals:
      StackMap stack:
            aload 2 /* commit */
            aload 4 /* graph */
            invokestatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.insertAllocationBarrier:(Lorg/graalvm/compiler/nodes/virtual/CommitAllocationNode;Lorg/graalvm/compiler/nodes/StructuredGraph;)V
        46: .line 918
            return
        end local 5 // java.util.ArrayList enters
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 3 // org.graalvm.compiler.nodes.ValueNode[] allocations
        end local 2 // org.graalvm.compiler.nodes.virtual.CommitAllocationNode commit
        end local 1 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   47     0         this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   47     1         tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            0   47     2       commit  Lorg/graalvm/compiler/nodes/virtual/CommitAllocationNode;
            0   47     3  allocations  [Lorg/graalvm/compiler/nodes/ValueNode;
            1   47     4        graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    8     5     objIndex  I
            4    6     6       anchor  Lorg/graalvm/compiler/nodes/extended/FixedValueAnchorNode;
            9   47     5       enters  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/java/MonitorEnterNode;>;
           10   29     6     objIndex  I
           12   27     7        locks  Ljava/util/List<Lorg/graalvm/compiler/nodes/java/MonitorIdNode;>;
           14   16     8      newList  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/java/MonitorIdNode;>;
           17   27     8    lastDepth  I
           19   26     9    monitorId  Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
           22   26    11        enter  Lorg/graalvm/compiler/nodes/java/MonitorEnterNode;
           31   38     6        usage  Lorg/graalvm/compiler/graph/Node;
           33   35     8    addObject  Lorg/graalvm/compiler/nodes/virtual/AllocatedObjectNode;
           34   35     9        index  I
           42   43     6        enter  Lorg/graalvm/compiler/nodes/java/MonitorEnterNode;
    MethodParameters:
             Name  Flags
      tool         
      commit       
      allocations  

  private static void insertAllocationBarrier(org.graalvm.compiler.nodes.virtual.CommitAllocationNode, org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/virtual/CommitAllocationNode;Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // org.graalvm.compiler.nodes.virtual.CommitAllocationNode commit
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 926
            bipush 8
            istore 2 /* barrier */
        start local 2 // int barrier
         1: .line 927
            aload 0 /* commit */
            invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getVirtualObjects:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 10
      StackMap locals: org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.StructuredGraph int top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            astore 3 /* vobj */
        start local 3 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode vobj
         3: .line 928
            aload 3 /* vobj */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.type:()Ljdk/vm/ci/meta/ResolvedJavaType;
            iconst_1
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getInstanceFields:(Z)[Ljdk/vm/ci/meta/ResolvedJavaField;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 9
      StackMap locals: org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.StructuredGraph int org.graalvm.compiler.nodes.virtual.VirtualObjectNode java.util.Iterator top int int jdk.vm.ci.meta.ResolvedJavaField[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* field */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaField field
         5: .line 929
            aload 5 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
            ifeq 8
         6: .line 930
            iload 2 /* barrier */
            iconst_2
            ior
            istore 2 /* barrier */
         7: .line 931
            goto 11
        end local 5 // jdk.vm.ci.meta.ResolvedJavaField field
         8: .line 928
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         9: iload 6
            iload 7
            if_icmplt 4
        end local 3 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode vobj
        10: .line 927
      StackMap locals: org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.StructuredGraph int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        11: .line 935
      StackMap locals: org.graalvm.compiler.nodes.virtual.CommitAllocationNode org.graalvm.compiler.nodes.StructuredGraph int
      StackMap stack:
            aload 1 /* graph */
            aload 0 /* commit */
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.extended.MembarNode
            dup
            iload 2 /* barrier */
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.init:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokespecial org.graalvm.compiler.nodes.extended.MembarNode.<init>:(ILjdk/internal/vm/compiler/word/LocationIdentity;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FixedNode
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        12: .line 936
            return
        end local 2 // int barrier
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.nodes.virtual.CommitAllocationNode commit
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0   commit  Lorg/graalvm/compiler/nodes/virtual/CommitAllocationNode;
            0   13     1    graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1   13     2  barrier  I
            3   10     3     vobj  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
            5    8     5    field  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
        Name  Flags
      commit  
      graph   

  protected org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType fieldLoadBarrierType(jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 942
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            areturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    1     1  field  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
       Name  Flags
      field  

  protected org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType fieldStoreBarrierType(jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 946
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.wordTypes:Lorg/graalvm/compiler/word/WordTypes;
            aload 1 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getType:()Ljdk/vm/ci/meta/JavaType;
            invokevirtual org.graalvm.compiler.word.WordTypes.asKind:(Ljdk/vm/ci/meta/JavaType;)Ljdk/vm/ci/meta/JavaKind;
            astore 2 /* fieldKind */
        start local 2 // jdk.vm.ci.meta.JavaKind fieldKind
         1: .line 947
            aload 2 /* fieldKind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 3
         2: .line 948
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.FIELD:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            areturn
         3: .line 950
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            areturn
        end local 2 // jdk.vm.ci.meta.JavaKind fieldKind
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1      field  Ljdk/vm/ci/meta/ResolvedJavaField;
            1    4     2  fieldKind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
       Name  Flags
      field  

  protected jdk.vm.ci.meta.JavaKind maybeWordArrayElementKind(org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/JavaKind;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.ValueNode array
        start local 2 // jdk.vm.ci.meta.JavaKind defaultElementKind
         0: .line 963
            aload 2 /* defaultElementKind */
            astore 3 /* elementKind */
        start local 3 // jdk.vm.ci.meta.JavaKind elementKind
         1: .line 964
            aload 1 /* array */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 4 /* arrayStamp */
        start local 4 // org.graalvm.compiler.core.common.type.Stamp arrayStamp
         2: .line 965
            aload 4 /* arrayStamp */
            instanceof org.graalvm.compiler.core.common.type.AbstractObjectStamp
            ifeq 6
            aload 4 /* arrayStamp */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.hasValues:()Z
            ifeq 6
         3: .line 966
            aload 4 /* arrayStamp */
            checkcast org.graalvm.compiler.core.common.type.AbstractObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.AbstractObjectStamp.type:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 5 /* arrayType */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaType arrayType
         4: .line 967
            aload 5 /* arrayType */
            ifnull 6
            aload 5 /* arrayType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            ifnull 6
         5: .line 968
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.wordTypes:Lorg/graalvm/compiler/word/WordTypes;
            aload 5 /* arrayType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual org.graalvm.compiler.word.WordTypes.asKind:(Ljdk/vm/ci/meta/JavaType;)Ljdk/vm/ci/meta/JavaKind;
            astore 3 /* elementKind */
        end local 5 // jdk.vm.ci.meta.ResolvedJavaType arrayType
         6: .line 971
      StackMap locals: jdk.vm.ci.meta.JavaKind org.graalvm.compiler.core.common.type.Stamp
      StackMap stack:
            aload 3 /* elementKind */
            areturn
        end local 4 // org.graalvm.compiler.core.common.type.Stamp arrayStamp
        end local 3 // jdk.vm.ci.meta.JavaKind elementKind
        end local 2 // jdk.vm.ci.meta.JavaKind defaultElementKind
        end local 1 // org.graalvm.compiler.nodes.ValueNode array
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    7     1               array  Lorg/graalvm/compiler/nodes/ValueNode;
            0    7     2  defaultElementKind  Ljdk/vm/ci/meta/JavaKind;
            1    7     3         elementKind  Ljdk/vm/ci/meta/JavaKind;
            2    7     4          arrayStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            4    6     5           arrayType  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
                    Name  Flags
      array               
      defaultElementKind  

  protected org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType arrayStoreBarrierType(org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.ValueNode array
        start local 2 // jdk.vm.ci.meta.JavaKind elementKind
         0: .line 975
            aload 0 /* this */
            aload 1 /* array */
            aload 2 /* elementKind */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.maybeWordArrayElementKind:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/JavaKind;
            astore 3 /* kind */
        start local 3 // jdk.vm.ci.meta.JavaKind kind
         1: .line 976
            aload 3 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 3
         2: .line 977
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.ARRAY:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            areturn
         3: .line 979
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            areturn
        end local 3 // jdk.vm.ci.meta.JavaKind kind
        end local 2 // jdk.vm.ci.meta.JavaKind elementKind
        end local 1 // org.graalvm.compiler.nodes.ValueNode array
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1        array  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     2  elementKind  Ljdk/vm/ci/meta/JavaKind;
            1    4     3         kind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
             Name  Flags
      array        
      elementKind  

  public org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType fieldInitializationBarrier(jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 983
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.wordTypes:Lorg/graalvm/compiler/word/WordTypes;
            aload 1 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getType:()Ljdk/vm/ci/meta/JavaType;
            invokevirtual org.graalvm.compiler.word.WordTypes.asKind:(Ljdk/vm/ci/meta/JavaType;)Ljdk/vm/ci/meta/JavaKind;
            astore 2 /* fieldKind */
        start local 2 // jdk.vm.ci.meta.JavaKind fieldKind
         1: .line 984
            aload 2 /* fieldKind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 2
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.FIELD:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            goto 3
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
         2: getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType
         3: areturn
        end local 2 // jdk.vm.ci.meta.JavaKind fieldKind
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1      field  Ljdk/vm/ci/meta/ResolvedJavaField;
            1    4     2  fieldKind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
       Name  Flags
      field  

  public org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType arrayInitializationBarrier(org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.ValueNode array
        start local 2 // jdk.vm.ci.meta.JavaKind entryKind
         0: .line 988
            aload 0 /* this */
            aload 1 /* array */
            aload 2 /* entryKind */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.maybeWordArrayElementKind:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/JavaKind;
            astore 3 /* kind */
        start local 3 // jdk.vm.ci.meta.JavaKind kind
         1: .line 989
            aload 3 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 2
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.ARRAY:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            goto 3
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
         2: getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType
         3: areturn
        end local 3 // jdk.vm.ci.meta.JavaKind kind
        end local 2 // jdk.vm.ci.meta.JavaKind entryKind
        end local 1 // org.graalvm.compiler.nodes.ValueNode array
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1      array  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     2  entryKind  Ljdk/vm/ci/meta/JavaKind;
            1    4     3       kind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
           Name  Flags
      array      
      entryKind  

  private org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType unsafeStoreBarrierType(org.graalvm.compiler.nodes.extended.RawStoreNode);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/RawStoreNode;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.extended.RawStoreNode store
         0: .line 993
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.needsBarrier:()Z
            ifne 2
         1: .line 994
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            areturn
         2: .line 996
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.guessStoreBarrierType:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            areturn
        end local 1 // org.graalvm.compiler.nodes.extended.RawStoreNode store
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    3     1  store  Lorg/graalvm/compiler/nodes/extended/RawStoreNode;
    MethodParameters:
       Name  Flags
      store  

  private org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType guessStoreBarrierType(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.ValueNode object
        start local 2 // org.graalvm.compiler.nodes.ValueNode value
         0: .line 1000
            aload 2 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 9
            aload 1 /* object */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 9
         1: .line 1001
            aload 1 /* object */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 3 /* type */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaType type
         2: .line 1004
            aload 3 /* type */
            ifnull 4
            aload 3 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
            ifeq 4
         3: .line 1005
            aload 0 /* this */
            aload 1 /* object */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.arrayStoreBarrierType:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            areturn
         4: .line 1006
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            aload 3 /* type */
            ifnull 6
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.wordTypes:Lorg/graalvm/compiler/word/WordTypes;
            aload 3 /* type */
            invokevirtual org.graalvm.compiler.word.WordTypes.isWord:(Ljdk/vm/ci/meta/JavaType;)Z
            ifeq 6
         5: .line 1007
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            areturn
         6: .line 1008
      StackMap locals:
      StackMap stack:
            aload 3 /* type */
            ifnull 7
            aload 3 /* type */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.objectArrayType:Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 8
         7: .line 1009
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.UNKNOWN:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            areturn
         8: .line 1011
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.FIELD:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            areturn
        end local 3 // jdk.vm.ci.meta.ResolvedJavaType type
         9: .line 1014
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode value
        end local 1 // org.graalvm.compiler.nodes.ValueNode object
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0   10     1  object  Lorg/graalvm/compiler/nodes/ValueNode;
            0   10     2   value  Lorg/graalvm/compiler/nodes/ValueNode;
            2    9     3    type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
        Name  Flags
      object  
      value   

  public abstract int fieldOffset(jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      field  

  public org.graalvm.compiler.nodes.FieldLocationIdentity fieldLocationIdentity(jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/FieldLocationIdentity;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 1020
            new org.graalvm.compiler.nodes.FieldLocationIdentity
            dup
            aload 1 /* field */
            invokespecial org.graalvm.compiler.nodes.FieldLocationIdentity.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;)V
            areturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    1     1  field  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
       Name  Flags
      field  

  public abstract org.graalvm.compiler.nodes.ValueNode staticFieldBase(org.graalvm.compiler.nodes.StructuredGraph, jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      graph  
      field  

  public abstract int arrayLengthOffset();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public org.graalvm.compiler.core.common.type.Stamp loadStamp(org.graalvm.compiler.core.common.type.Stamp, jdk.vm.ci.meta.JavaKind);
    descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 2 // jdk.vm.ci.meta.JavaKind kind
         0: .line 1028
            aload 0 /* this */
            aload 1 /* stamp */
            aload 2 /* kind */
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.loadStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/JavaKind;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
            areturn
        end local 2 // jdk.vm.ci.meta.JavaKind kind
        end local 1 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    1     1  stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            0    1     2   kind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
       Name  Flags
      stamp  
      kind   

  private boolean useCompressedOops(jdk.vm.ci.meta.JavaKind, boolean);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // jdk.vm.ci.meta.JavaKind kind
        start local 2 // boolean compressible
         0: .line 1032
            aload 1 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 1
            iload 2 /* compressible */
            ifeq 1
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.useCompressedOops:Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // boolean compressible
        end local 1 // jdk.vm.ci.meta.JavaKind kind
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    2     1          kind  Ljdk/vm/ci/meta/JavaKind;
            0    2     2  compressible  Z
    MethodParameters:
              Name  Flags
      kind          
      compressible  

  protected abstract org.graalvm.compiler.core.common.type.Stamp loadCompressedStamp(org.graalvm.compiler.core.common.type.ObjectStamp);
    descriptor: (Lorg/graalvm/compiler/core/common/type/ObjectStamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      stamp  

  protected org.graalvm.compiler.core.common.type.Stamp loadStamp(org.graalvm.compiler.core.common.type.Stamp, jdk.vm.ci.meta.JavaKind, boolean);
    descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/JavaKind;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 2 // jdk.vm.ci.meta.JavaKind kind
        start local 3 // boolean compressible
         0: .line 1041
            aload 0 /* this */
            aload 2 /* kind */
            iload 3 /* compressible */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.useCompressedOops:(Ljdk/vm/ci/meta/JavaKind;Z)Z
            ifeq 2
         1: .line 1042
            aload 0 /* this */
            aload 1 /* stamp */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.loadCompressedStamp:(Lorg/graalvm/compiler/core/common/type/ObjectStamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            areturn
         2: .line 1045
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 2 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 3
                    2: 3
                    3: 4
                    4: 4
              default: 5
          }
         3: .line 1048
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.common.type.IntegerStamp.OPS:Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
            invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable.getNarrow:()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$IntegerConvertOp;
            bipush 32
            bipush 8
            aload 1 /* stamp */
            invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$IntegerConvertOp.foldStamp:(IILorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            areturn
         4: .line 1051
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.common.type.IntegerStamp.OPS:Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
            invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable.getNarrow:()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$IntegerConvertOp;
            bipush 32
            bipush 16
            aload 1 /* stamp */
            invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$IntegerConvertOp.foldStamp:(IILorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            areturn
         5: .line 1053
      StackMap locals:
      StackMap stack:
            aload 1 /* stamp */
            areturn
        end local 3 // boolean compressible
        end local 2 // jdk.vm.ci.meta.JavaKind kind
        end local 1 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    6     1         stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            0    6     2          kind  Ljdk/vm/ci/meta/JavaKind;
            0    6     3  compressible  Z
    MethodParameters:
              Name  Flags
      stamp         
      kind          
      compressible  

  public final org.graalvm.compiler.nodes.ValueNode implicitLoadConvert(org.graalvm.compiler.nodes.StructuredGraph, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // jdk.vm.ci.meta.JavaKind kind
        start local 3 // org.graalvm.compiler.nodes.ValueNode value
         0: .line 1057
            aload 0 /* this */
            aload 1 /* graph */
            aload 2 /* kind */
            aload 3 /* value */
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitLoadConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 3 // org.graalvm.compiler.nodes.ValueNode value
        end local 2 // jdk.vm.ci.meta.JavaKind kind
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    1     1  graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    1     2   kind  Ljdk/vm/ci/meta/JavaKind;
            0    1     3  value  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      graph  
      kind   
      value  

  public org.graalvm.compiler.nodes.ValueNode implicitLoadConvert(jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // jdk.vm.ci.meta.JavaKind kind
        start local 2 // org.graalvm.compiler.nodes.ValueNode value
         0: .line 1061
            aload 0 /* this */
            aload 1 /* kind */
            aload 2 /* value */
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitLoadConvert:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode value
        end local 1 // jdk.vm.ci.meta.JavaKind kind
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    1     1   kind  Ljdk/vm/ci/meta/JavaKind;
            0    1     2  value  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      kind   
      value  

  protected final org.graalvm.compiler.nodes.ValueNode implicitLoadConvert(org.graalvm.compiler.nodes.StructuredGraph, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // jdk.vm.ci.meta.JavaKind kind
        start local 3 // org.graalvm.compiler.nodes.ValueNode value
        start local 4 // boolean compressible
         0: .line 1065
            aload 0 /* this */
            aload 2 /* kind */
            aload 3 /* value */
            iload 4 /* compressible */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitLoadConvert:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* ret */
        start local 5 // org.graalvm.compiler.nodes.ValueNode ret
         1: .line 1066
            aload 5 /* ret */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isAlive:()Z
            ifne 3
         2: .line 1067
            aload 1 /* graph */
            aload 5 /* ret */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 5 /* ret */
         3: .line 1069
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 5 /* ret */
            areturn
        end local 5 // org.graalvm.compiler.nodes.ValueNode ret
        end local 4 // boolean compressible
        end local 3 // org.graalvm.compiler.nodes.ValueNode value
        end local 2 // jdk.vm.ci.meta.JavaKind kind
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1         graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    4     2          kind  Ljdk/vm/ci/meta/JavaKind;
            0    4     3         value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     4  compressible  Z
            1    4     5           ret  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
              Name  Flags
      graph         
      kind          
      value         
      compressible  

  protected abstract org.graalvm.compiler.nodes.ValueNode newCompressionNode(org.graalvm.compiler.nodes.CompressionNode$CompressionOp, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/CompressionNode$CompressionOp;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      op     
      value  

  protected org.graalvm.compiler.nodes.ValueNode implicitLoadConvert(jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode, boolean);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // jdk.vm.ci.meta.JavaKind kind
        start local 2 // org.graalvm.compiler.nodes.ValueNode value
        start local 3 // boolean compressible
         0: .line 1078
            aload 0 /* this */
            aload 1 /* kind */
            iload 3 /* compressible */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.useCompressedOops:(Ljdk/vm/ci/meta/JavaKind;Z)Z
            ifeq 2
         1: .line 1079
            aload 0 /* this */
            getstatic org.graalvm.compiler.nodes.CompressionNode$CompressionOp.Uncompress:Lorg/graalvm/compiler/nodes/CompressionNode$CompressionOp;
            aload 2 /* value */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.newCompressionNode:(Lorg/graalvm/compiler/nodes/CompressionNode$CompressionOp;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         2: .line 1082
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 1 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 4
                    2: 3
                    3: 3
                    4: 4
              default: 5
          }
         3: .line 1085
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.nodes.calc.SignExtendNode
            dup
            aload 2 /* value */
            bipush 32
            invokespecial org.graalvm.compiler.nodes.calc.SignExtendNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;I)V
            areturn
         4: .line 1088
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.nodes.calc.ZeroExtendNode
            dup
            aload 2 /* value */
            bipush 32
            invokespecial org.graalvm.compiler.nodes.calc.ZeroExtendNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;I)V
            areturn
         5: .line 1090
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            areturn
        end local 3 // boolean compressible
        end local 2 // org.graalvm.compiler.nodes.ValueNode value
        end local 1 // jdk.vm.ci.meta.JavaKind kind
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    6     1          kind  Ljdk/vm/ci/meta/JavaKind;
            0    6     2         value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    6     3  compressible  Z
    MethodParameters:
              Name  Flags
      kind          
      value         
      compressible  

  public final org.graalvm.compiler.nodes.ValueNode implicitStoreConvert(org.graalvm.compiler.nodes.StructuredGraph, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // jdk.vm.ci.meta.JavaKind kind
        start local 3 // org.graalvm.compiler.nodes.ValueNode value
         0: .line 1094
            aload 0 /* this */
            aload 1 /* graph */
            aload 2 /* kind */
            aload 3 /* value */
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 3 // org.graalvm.compiler.nodes.ValueNode value
        end local 2 // jdk.vm.ci.meta.JavaKind kind
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    1     1  graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    1     2   kind  Ljdk/vm/ci/meta/JavaKind;
            0    1     3  value  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      graph  
      kind   
      value  

  public org.graalvm.compiler.nodes.ValueNode implicitStoreConvert(jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // jdk.vm.ci.meta.JavaKind kind
        start local 2 // org.graalvm.compiler.nodes.ValueNode value
         0: .line 1098
            aload 0 /* this */
            aload 1 /* kind */
            aload 2 /* value */
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode value
        end local 1 // jdk.vm.ci.meta.JavaKind kind
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    1     1   kind  Ljdk/vm/ci/meta/JavaKind;
            0    1     2  value  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      kind   
      value  

  protected final org.graalvm.compiler.nodes.ValueNode implicitStoreConvert(org.graalvm.compiler.nodes.StructuredGraph, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // jdk.vm.ci.meta.JavaKind kind
        start local 3 // org.graalvm.compiler.nodes.ValueNode value
        start local 4 // boolean compressible
         0: .line 1102
            aload 0 /* this */
            aload 2 /* kind */
            aload 3 /* value */
            iload 4 /* compressible */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.implicitStoreConvert:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* ret */
        start local 5 // org.graalvm.compiler.nodes.ValueNode ret
         1: .line 1103
            aload 5 /* ret */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isAlive:()Z
            ifne 3
         2: .line 1104
            aload 1 /* graph */
            aload 5 /* ret */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 5 /* ret */
         3: .line 1106
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 5 /* ret */
            areturn
        end local 5 // org.graalvm.compiler.nodes.ValueNode ret
        end local 4 // boolean compressible
        end local 3 // org.graalvm.compiler.nodes.ValueNode value
        end local 2 // jdk.vm.ci.meta.JavaKind kind
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1         graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    4     2          kind  Ljdk/vm/ci/meta/JavaKind;
            0    4     3         value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     4  compressible  Z
            1    4     5           ret  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
              Name  Flags
      graph         
      kind          
      value         
      compressible  

  protected org.graalvm.compiler.nodes.ValueNode implicitStoreConvert(jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode, boolean);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // jdk.vm.ci.meta.JavaKind kind
        start local 2 // org.graalvm.compiler.nodes.ValueNode value
        start local 3 // boolean compressible
         0: .line 1113
            aload 0 /* this */
            aload 1 /* kind */
            iload 3 /* compressible */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.useCompressedOops:(Ljdk/vm/ci/meta/JavaKind;Z)Z
            ifeq 2
         1: .line 1114
            aload 0 /* this */
            getstatic org.graalvm.compiler.nodes.CompressionNode$CompressionOp.Compress:Lorg/graalvm/compiler/nodes/CompressionNode$CompressionOp;
            aload 2 /* value */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.newCompressionNode:(Lorg/graalvm/compiler/nodes/CompressionNode$CompressionOp;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         2: .line 1117
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 1 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 3
                    2: 3
                    3: 4
                    4: 4
              default: 5
          }
         3: .line 1120
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.nodes.calc.NarrowNode
            dup
            aload 2 /* value */
            bipush 8
            invokespecial org.graalvm.compiler.nodes.calc.NarrowNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;I)V
            areturn
         4: .line 1123
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.nodes.calc.NarrowNode
            dup
            aload 2 /* value */
            bipush 16
            invokespecial org.graalvm.compiler.nodes.calc.NarrowNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;I)V
            areturn
         5: .line 1125
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            areturn
        end local 3 // boolean compressible
        end local 2 // org.graalvm.compiler.nodes.ValueNode value
        end local 1 // jdk.vm.ci.meta.JavaKind kind
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    6     1          kind  Ljdk/vm/ci/meta/JavaKind;
            0    6     2         value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    6     3  compressible  Z
    MethodParameters:
              Name  Flags
      kind          
      value         
      compressible  

  protected abstract org.graalvm.compiler.nodes.ValueNode createReadHub(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      graph   
      object  
      tool    

  protected abstract org.graalvm.compiler.nodes.ValueNode createReadArrayComponentHub(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.FixedNode);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      graph     
      arrayHub  
      anchor    

  protected org.graalvm.compiler.nodes.ValueNode proxyIndex(org.graalvm.compiler.nodes.java.AccessIndexedNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/java/AccessIndexedNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.java.AccessIndexedNode n
        start local 2 // org.graalvm.compiler.nodes.ValueNode index
        start local 3 // org.graalvm.compiler.nodes.ValueNode array
        start local 4 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 1133
            aload 2 /* index */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 5 /* graph */
        start local 5 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 1134
            aload 0 /* this */
            aload 1 /* n */
            aload 3 /* array */
            aload 4 /* tool */
            aload 5 /* graph */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.readOrCreateArrayLength:(Lorg/graalvm/compiler/nodes/java/AccessIndexedNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* arrayLength */
        start local 6 // org.graalvm.compiler.nodes.ValueNode arrayLength
         2: .line 1135
            aload 6 /* arrayLength */
            iconst_1
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(I)Lorg/graalvm/compiler/nodes/ConstantNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.SubNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* lengthMinusOne */
        start local 7 // org.graalvm.compiler.nodes.ValueNode lengthMinusOne
         3: .line 1136
            aload 2 /* index */
            aload 7 /* lengthMinusOne */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.branchlessMin:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            iconst_0
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(I)Lorg/graalvm/compiler/nodes/ConstantNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.branchlessMax:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 7 // org.graalvm.compiler.nodes.ValueNode lengthMinusOne
        end local 6 // org.graalvm.compiler.nodes.ValueNode arrayLength
        end local 5 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 4 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 3 // org.graalvm.compiler.nodes.ValueNode array
        end local 2 // org.graalvm.compiler.nodes.ValueNode index
        end local 1 // org.graalvm.compiler.nodes.java.AccessIndexedNode n
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1               n  Lorg/graalvm/compiler/nodes/java/AccessIndexedNode;
            0    4     2           index  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     3           array  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     4            tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1    4     5           graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    4     6     arrayLength  Lorg/graalvm/compiler/nodes/ValueNode;
            3    4     7  lengthMinusOne  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      n      
      index  
      array  
      tool   

  protected org.graalvm.compiler.nodes.extended.GuardingNode getBoundsCheck(org.graalvm.compiler.nodes.java.AccessIndexedNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/java/AccessIndexedNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/extended/GuardingNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.java.AccessIndexedNode n
        start local 2 // org.graalvm.compiler.nodes.ValueNode array
        start local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 1140
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AccessIndexedNode.getBoundsCheck:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            ifnull 2
         1: .line 1141
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AccessIndexedNode.getBoundsCheck:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            areturn
         2: .line 1144
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AccessIndexedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 4 /* graph */
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         3: .line 1145
            aload 0 /* this */
            aload 1 /* n */
            aload 2 /* array */
            aload 3 /* tool */
            aload 4 /* graph */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.readOrCreateArrayLength:(Lorg/graalvm/compiler/nodes/java/AccessIndexedNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* arrayLength */
        start local 5 // org.graalvm.compiler.nodes.ValueNode arrayLength
         4: .line 1147
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.java.AccessIndexedNode.index:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 5 /* arrayLength */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.IntegerBelowNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/LogicNode;
            astore 6 /* boundsCheck */
        start local 6 // org.graalvm.compiler.nodes.LogicNode boundsCheck
         5: .line 1148
            aload 6 /* boundsCheck */
            invokevirtual org.graalvm.compiler.nodes.LogicNode.isTautology:()Z
            ifeq 7
         6: .line 1149
            aconst_null
            areturn
         7: .line 1151
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.LogicNode
      StackMap stack:
            aload 3 /* tool */
            aload 1 /* n */
            aload 4 /* graph */
            aload 6 /* boundsCheck */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.LogicNode
            getstatic jdk.vm.ci.meta.DeoptimizationReason.BoundsCheckException:Ljdk/vm/ci/meta/DeoptimizationReason;
            getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateReprofile:Ljdk/vm/ci/meta/DeoptimizationAction;
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.createGuard:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationReason;Ljdk/vm/ci/meta/DeoptimizationAction;)Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            areturn
        end local 6 // org.graalvm.compiler.nodes.LogicNode boundsCheck
        end local 5 // org.graalvm.compiler.nodes.ValueNode arrayLength
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 2 // org.graalvm.compiler.nodes.ValueNode array
        end local 1 // org.graalvm.compiler.nodes.java.AccessIndexedNode n
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    8     1            n  Lorg/graalvm/compiler/nodes/java/AccessIndexedNode;
            0    8     2        array  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     3         tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            3    8     4        graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            4    8     5  arrayLength  Lorg/graalvm/compiler/nodes/ValueNode;
            5    8     6  boundsCheck  Lorg/graalvm/compiler/nodes/LogicNode;
    MethodParameters:
       Name  Flags
      n      
      array  
      tool   

  private org.graalvm.compiler.nodes.ValueNode readOrCreateArrayLength(org.graalvm.compiler.nodes.java.AccessIndexedNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.spi.LoweringTool, org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/java/AccessIndexedNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.java.AccessIndexedNode n
        start local 2 // org.graalvm.compiler.nodes.ValueNode array
        start local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 1155
            aload 2 /* array */
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            invokestatic org.graalvm.compiler.nodes.java.ArrayLengthNode.readArrayLength:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* arrayLength */
        start local 5 // org.graalvm.compiler.nodes.ValueNode arrayLength
         1: .line 1156
            aload 5 /* arrayLength */
            ifnonnull 4
         2: .line 1157
            aload 0 /* this */
            aload 2 /* array */
            aload 1 /* n */
            aload 3 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createReadArrayLength:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/memory/ReadNode;
            astore 5 /* arrayLength */
         3: .line 1158
            goto 7
         4: .line 1159
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 5 /* arrayLength */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isAlive:()Z
            ifeq 5
            aload 5 /* arrayLength */
            goto 6
      StackMap locals:
      StackMap stack:
         5: aload 4 /* graph */
            aload 5 /* arrayLength */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.ValueNode
         6: astore 5 /* arrayLength */
         7: .line 1161
      StackMap locals:
      StackMap stack:
            aload 5 /* arrayLength */
            areturn
        end local 5 // org.graalvm.compiler.nodes.ValueNode arrayLength
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 2 // org.graalvm.compiler.nodes.ValueNode array
        end local 1 // org.graalvm.compiler.nodes.java.AccessIndexedNode n
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    8     1            n  Lorg/graalvm/compiler/nodes/java/AccessIndexedNode;
            0    8     2        array  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     3         tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            0    8     4        graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1    8     5  arrayLength  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      n      
      array  
      tool   
      graph  

  protected org.graalvm.compiler.nodes.extended.GuardingNode createNullCheck(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.FixedNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/extended/GuardingNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.ValueNode object
        start local 2 // org.graalvm.compiler.nodes.FixedNode before
        start local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 1165
            aload 1 /* object */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.isPointerNonNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifeq 2
         1: .line 1166
            aconst_null
            areturn
         2: .line 1168
      StackMap locals:
      StackMap stack:
            aload 3 /* tool */
            aload 2 /* before */
            aload 2 /* before */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 1 /* object */
            invokestatic org.graalvm.compiler.nodes.calc.IsNullNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/LogicNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.LogicNode
            getstatic jdk.vm.ci.meta.DeoptimizationReason.NullCheckException:Ljdk/vm/ci/meta/DeoptimizationReason;
            getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateReprofile:Ljdk/vm/ci/meta/DeoptimizationAction;
            getstatic jdk.vm.ci.meta.SpeculationLog.NO_SPECULATION:Ljdk/vm/ci/meta/SpeculationLog$Speculation;
            iconst_1
            aconst_null
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.createGuard:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationReason;Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/SpeculationLog$Speculation;ZLorg/graalvm/compiler/graph/NodeSourcePosition;)Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            areturn
        end local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 2 // org.graalvm.compiler.nodes.FixedNode before
        end local 1 // org.graalvm.compiler.nodes.ValueNode object
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    3     1  object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     2  before  Lorg/graalvm/compiler/nodes/FixedNode;
            0    3     3    tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
    MethodParameters:
        Name  Flags
      object  
      before  
      tool    

  protected org.graalvm.compiler.nodes.ValueNode createNullCheckedValue(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.FixedNode, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // org.graalvm.compiler.nodes.ValueNode object
        start local 2 // org.graalvm.compiler.nodes.FixedNode before
        start local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 1172
            aload 0 /* this */
            aload 1 /* object */
            aload 2 /* before */
            aload 3 /* tool */
            invokevirtual org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.createNullCheck:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            astore 4 /* nullCheck */
        start local 4 // org.graalvm.compiler.nodes.extended.GuardingNode nullCheck
         1: .line 1173
            aload 4 /* nullCheck */
            ifnonnull 3
         2: .line 1174
            aload 1 /* object */
            areturn
         3: .line 1176
      StackMap locals: org.graalvm.compiler.nodes.extended.GuardingNode
      StackMap stack:
            aload 2 /* before */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 1 /* object */
            aload 1 /* object */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 4 /* nullCheck */
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokestatic org.graalvm.compiler.nodes.PiNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.maybeAddOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            areturn
        end local 4 // org.graalvm.compiler.nodes.extended.GuardingNode nullCheck
        end local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 2 // org.graalvm.compiler.nodes.FixedNode before
        end local 1 // org.graalvm.compiler.nodes.ValueNode object
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    4     1     object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     2     before  Lorg/graalvm/compiler/nodes/FixedNode;
            0    4     3       tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1    4     4  nullCheck  Lorg/graalvm/compiler/nodes/extended/GuardingNode;
    MethodParameters:
        Name  Flags
      object  
      before  
      tool    

  public org.graalvm.compiler.nodes.ValueNode reconstructArrayIndex(jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.memory.address.AddressNode);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=3
        start local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
        start local 1 // jdk.vm.ci.meta.JavaKind elementKind
        start local 2 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         0: .line 1181
            aload 2 /* address */
            invokevirtual org.graalvm.compiler.nodes.memory.address.AddressNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 3 /* graph */
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 1182
            aload 2 /* address */
            checkcast org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getOffset:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* offset */
        start local 4 // org.graalvm.compiler.nodes.ValueNode offset
         2: .line 1184
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* elementKind */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 5 /* base */
        start local 5 // int base
         3: .line 1185
            aload 3 /* graph */
            new org.graalvm.compiler.nodes.calc.SubNode
            dup
            aload 4 /* offset */
            aload 4 /* offset */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            iload 5 /* base */
            i2l
            aload 3 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokespecial org.graalvm.compiler.nodes.calc.SubNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 6 /* scaledIndex */
        start local 6 // org.graalvm.compiler.nodes.ValueNode scaledIndex
         4: .line 1187
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* elementKind */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            invokestatic jdk.vm.ci.code.CodeUtil.log2:(I)I
            istore 7 /* shift */
        start local 7 // int shift
         5: .line 1188
            aload 3 /* graph */
            new org.graalvm.compiler.nodes.calc.RightShiftNode
            dup
            aload 6 /* scaledIndex */
            iload 7 /* shift */
            aload 3 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(ILorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokespecial org.graalvm.compiler.nodes.calc.RightShiftNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 8 /* ret */
        start local 8 // org.graalvm.compiler.nodes.ValueNode ret
         6: .line 1189
            aload 8 /* ret */
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* graph */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.IntegerConvertNode.convert:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 8 // org.graalvm.compiler.nodes.ValueNode ret
        end local 7 // int shift
        end local 6 // org.graalvm.compiler.nodes.ValueNode scaledIndex
        end local 5 // int base
        end local 4 // org.graalvm.compiler.nodes.ValueNode offset
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 1 // jdk.vm.ci.meta.JavaKind elementKind
        end local 0 // org.graalvm.compiler.replacements.DefaultJavaLoweringProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/graalvm/compiler/replacements/DefaultJavaLoweringProvider;
            0    7     1  elementKind  Ljdk/vm/ci/meta/JavaKind;
            0    7     2      address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            1    7     3        graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    7     4       offset  Lorg/graalvm/compiler/nodes/ValueNode;
            3    7     5         base  I
            4    7     6  scaledIndex  Lorg/graalvm/compiler/nodes/ValueNode;
            5    7     7        shift  I
            6    7     8          ret  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
             Name  Flags
      elementKind  
      address      

  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 162
            getstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic jdk.vm.ci.meta.JavaKind.values:()[Ljdk/vm/ci/meta/JavaKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 8
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 6
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 11
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_5
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 7
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 9
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_3
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 10
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            dup
            putstatic org.graalvm.compiler.replacements.DefaultJavaLoweringProvider.$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

  private static int lambda$0(org.graalvm.compiler.nodes.java.MonitorIdNode, org.graalvm.compiler.nodes.java.MonitorIdNode);
    descriptor: (Lorg/graalvm/compiler/nodes/java/MonitorIdNode;Lorg/graalvm/compiler/nodes/java/MonitorIdNode;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.java.MonitorIdNode a
        start local 1 // org.graalvm.compiler.nodes.java.MonitorIdNode b
         0: .line 886
            aload 0 /* a */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorIdNode.getLockDepth:()I
            aload 1 /* b */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorIdNode.getLockDepth:()I
            invokestatic java.lang.Integer.compare:(II)I
            ireturn
        end local 1 // org.graalvm.compiler.nodes.java.MonitorIdNode b
        end local 0 // org.graalvm.compiler.nodes.java.MonitorIdNode a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
            0    1     1     b  Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
}
SourceFile: "DefaultJavaLoweringProvider.java"
NestMembers:
  org.graalvm.compiler.replacements.DefaultJavaLoweringProvider$1  org.graalvm.compiler.replacements.DefaultJavaLoweringProvider$2  org.graalvm.compiler.replacements.DefaultJavaLoweringProvider$3
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Speculation = jdk.vm.ci.meta.SpeculationLog$Speculation of jdk.vm.ci.meta.SpeculationLog
  public Options = org.graalvm.compiler.core.common.SpeculativeExecutionAttacksMitigations$Options of org.graalvm.compiler.core.common.SpeculativeExecutionAttacksMitigations
  public abstract IntegerConvertOp = org.graalvm.compiler.core.common.type.ArithmeticOpTable$IntegerConvertOp of org.graalvm.compiler.core.common.type.ArithmeticOpTable
  public abstract Narrow = org.graalvm.compiler.core.common.type.ArithmeticOpTable$IntegerConvertOp$Narrow of org.graalvm.compiler.core.common.type.ArithmeticOpTable$IntegerConvertOp
  public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
  public final CompressionOp = org.graalvm.compiler.nodes.CompressionNode$CompressionOp of org.graalvm.compiler.nodes.CompressionNode
  public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
  public final BarrierType = org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType of org.graalvm.compiler.nodes.memory.HeapAccess
  public abstract LoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool
  public final StandardLoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool
  public Templates = org.graalvm.compiler.replacements.BoxingSnippets$Templates of org.graalvm.compiler.replacements.BoxingSnippets
  public Templates = org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets$Templates of org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets
  org.graalvm.compiler.replacements.DefaultJavaLoweringProvider$1
  org.graalvm.compiler.replacements.DefaultJavaLoweringProvider$2
  org.graalvm.compiler.replacements.DefaultJavaLoweringProvider$3
  public Group = org.graalvm.compiler.replacements.SnippetCounter$Group of org.graalvm.compiler.replacements.SnippetCounter
  public abstract Factory = org.graalvm.compiler.replacements.SnippetCounter$Group$Factory of org.graalvm.compiler.replacements.SnippetCounter$Group
  SnippetCounterSnippets = org.graalvm.compiler.replacements.SnippetCounterNode$SnippetCounterSnippets of org.graalvm.compiler.replacements.SnippetCounterNode
  public Templates = org.graalvm.compiler.replacements.SnippetCounterNode$SnippetCounterSnippets$Templates of org.graalvm.compiler.replacements.SnippetCounterNode$SnippetCounterSnippets
  public abstract SnippetLowering = org.graalvm.compiler.replacements.SnippetLowerableMemoryNode$SnippetLowering of org.graalvm.compiler.replacements.SnippetLowerableMemoryNode
  public final BinaryOperation = org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode$BinaryOperation of org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode
  public final UnaryOperation = org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation of org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode