public class org.graalvm.compiler.hotspot.replacements.MonitorSnippets implements org.graalvm.compiler.replacements.Snippets
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.replacements.MonitorSnippets
  super_class: java.lang.Object
{
  private static final boolean PROFILE_CONTEXT;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean ENABLE_BREAKPOINT;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final jdk.internal.vm.compiler.word.LocationIdentity MONITOR_COUNTER_LOCATION;
    descriptor: Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final org.graalvm.compiler.core.common.spi.ForeignCallDescriptor MONITORENTER;
    descriptor: Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.graalvm.compiler.core.common.spi.ForeignCallDescriptor MONITOREXIT;
    descriptor: Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=0, args_size=0
         0: .line 652
            ldc "MonitorCounter"
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
            putstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITOR_COUNTER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
         1: .line 893
            new org.graalvm.compiler.core.common.spi.ForeignCallDescriptor
            dup
            ldc "monitorenter"
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            ldc Lorg/graalvm/compiler/word/Word;
            aastore
            invokespecial org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.<init>:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)V
            putstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITORENTER:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
         2: .line 894
            new org.graalvm.compiler.core.common.spi.ForeignCallDescriptor
            dup
            ldc "monitorexit"
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            ldc Lorg/graalvm/compiler/word/Word;
            aastore
            invokespecial org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.<init>:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)V
            putstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITOREXIT:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  static boolean doProfile(org.graalvm.compiler.options.OptionValues);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValues options
         0: .line 230
            getstatic org.graalvm.compiler.hotspot.replacements.HotspotSnippetsOptions.ProfileMonitors:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* options */
            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
            ireturn
        end local 0 // org.graalvm.compiler.options.OptionValues options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  options  Lorg/graalvm/compiler/options/OptionValues;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.api.replacements.Fold$InjectedParameter()
    MethodParameters:
         Name  Flags
      options  

  public static void monitorenter(java.lang.Object, org.graalvm.compiler.hotspot.word.KlassPointer, int, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, boolean, org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/compiler/hotspot/word/KlassPointer;ILjdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ZLorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=14, args_size=7
        start local 0 // java.lang.Object object
        start local 1 // org.graalvm.compiler.hotspot.word.KlassPointer hub
        start local 2 // int lockDepth
        start local 3 // jdk.vm.ci.code.Register threadRegister
        start local 4 // jdk.vm.ci.code.Register stackPointerRegister
        start local 5 // boolean trace
        start local 6 // org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters counters
         0: .line 236
            aload 0 /* object */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.verifyOop:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 239
            aload 0 /* object */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.markOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadWordFromObject:(Ljava/lang/Object;I)Lorg/graalvm/compiler/word/Word;
            astore 7 /* mark */
        start local 7 // org.graalvm.compiler.word.Word mark
         2: .line 241
            iload 2 /* lockDepth */
            invokestatic org.graalvm.compiler.hotspot.nodes.BeginLockScopeNode.beginLockScope:(I)Lorg/graalvm/compiler/word/Word;
            astore 8 /* lock */
        start local 8 // org.graalvm.compiler.word.Word lock
         3: .line 243
            aload 0 /* object */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 9 /* objectPointer */
        start local 9 // jdk.internal.vm.compiler.word.Pointer objectPointer
         4: .line 244
            iload 5 /* trace */
            ldc "           object: 0x%016lx\n"
            aload 9 /* objectPointer */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
         5: .line 245
            iload 5 /* trace */
            ldc "             lock: 0x%016lx\n"
            aload 8 /* lock */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
         6: .line 246
            iload 5 /* trace */
            ldc "             mark: 0x%016lx\n"
            aload 7 /* mark */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
         7: .line 248
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.incCounter:()V
         8: .line 250
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.useBiasedLocking:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
            ifeq 11
         9: .line 251
            aload 0 /* object */
            aload 1 /* hub */
            aload 8 /* lock */
            aload 7 /* mark */
            aload 3 /* threadRegister */
            iload 5 /* trace */
            aload 6 /* counters */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.tryEnterBiased:(Ljava/lang/Object;Lorg/graalvm/compiler/hotspot/word/KlassPointer;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Ljdk/vm/ci/code/Register;ZLorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;)Z
            ifeq 11
        10: .line 252
            return
        11: .line 256
      StackMap locals: org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word jdk.internal.vm.compiler.word.Pointer
      StackMap stack:
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.inlineFastLockSupported:()Z
            ifeq 14
            ldc 0.010000000000000009
            aload 7 /* mark */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.monitorMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.and:(I)Lorg/graalvm/compiler/word/Word;
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.notEqual:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 14
        12: .line 258
            aload 0 /* object */
            aload 8 /* lock */
            aload 7 /* mark */
            aload 3 /* threadRegister */
            iload 5 /* trace */
            aload 6 /* counters */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.tryEnterInflated:(Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Ljdk/vm/ci/code/Register;ZLorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;)Z
            ifeq 34
        13: .line 259
            return
        14: .line 263
      StackMap locals:
      StackMap stack:
            aload 7 /* mark */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.unlockedMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.or:(I)Lorg/graalvm/compiler/word/Word;
            astore 10 /* unlockedMark */
        start local 10 // org.graalvm.compiler.word.Word unlockedMark
        15: .line 264
            iload 5 /* trace */
            ldc "     unlockedMark: 0x%016lx\n"
            aload 10 /* unlockedMark */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
        16: .line 267
            aload 8 /* lock */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.lockDisplacedMarkOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            aload 10 /* unlockedMark */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.DISPLACED_MARK_WORD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        17: .line 270
            bipush 8
            invokestatic org.graalvm.compiler.nodes.extended.MembarNode.memoryBarrier:(I)V
        18: .line 274
            aload 9 /* objectPointer */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.markOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            aload 10 /* unlockedMark */
            aload 8 /* lock */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.MARK_WORD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokeinterface jdk.internal.vm.compiler.word.Pointer.compareAndSwapWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 11 /* currentMark */
        start local 11 // org.graalvm.compiler.word.Word currentMark
        19: .line 275
            ldc 0.99
            aload 11 /* currentMark */
            aload 10 /* unlockedMark */
            invokevirtual org.graalvm.compiler.word.Word.equal:(Lorg/graalvm/compiler/word/Word;)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 24
        20: .line 276
            iload 5 /* trace */
            ldc "+lock{cas}"
            aload 0 /* object */
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        21: .line 277
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.lockCas:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        22: .line 278
            aload 0 /* object */
            invokestatic org.graalvm.compiler.hotspot.nodes.AcquiredCASLockNode.mark:(Ljava/lang/Object;)V
        23: .line 279
            return
        24: .line 281
      StackMap locals: org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
      StackMap stack:
            iload 5 /* trace */
            ldc "      currentMark: 0x%016lx\n"
            aload 11 /* currentMark */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
        25: .line 297
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.wordSize:()I
            iconst_1
            isub
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            astore 12 /* alignedMask */
        start local 12 // org.graalvm.compiler.word.Word alignedMask
        26: .line 298
            aload 4 /* stackPointerRegister */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.registerAsWord:(Ljdk/vm/ci/code/Register;)Lorg/graalvm/compiler/word/Word;
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.stackBias:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 13 /* stackPointer */
        start local 13 // org.graalvm.compiler.word.Word stackPointer
        27: .line 299
            ldc 0.99
            aload 11 /* currentMark */
            aload 13 /* stackPointer */
            invokevirtual org.graalvm.compiler.word.Word.subtract:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            aload 12 /* alignedMask */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.pageSize:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.subtract:(I)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.and:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.equal:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 32
        28: .line 301
            aload 8 /* lock */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.lockDisplacedMarkOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokestatic jdk.internal.vm.compiler.word.WordFactory.zero:()Ljdk/internal/vm/compiler/word/WordBase;
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.DISPLACED_MARK_WORD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        29: .line 302
            iload 5 /* trace */
            ldc "+lock{cas:recursive}"
            aload 0 /* object */
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        30: .line 303
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.lockCasRecursive:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        31: .line 304
            return
        32: .line 306
      StackMap locals: org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
      StackMap stack:
            iload 5 /* trace */
            ldc "+lock{stub:failed-cas/stack}"
            aload 0 /* object */
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        33: .line 307
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.lockStubFailedCas:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        end local 13 // org.graalvm.compiler.word.Word stackPointer
        end local 12 // org.graalvm.compiler.word.Word alignedMask
        end local 11 // org.graalvm.compiler.word.Word currentMark
        end local 10 // org.graalvm.compiler.word.Word unlockedMark
        34: .line 311
      StackMap locals: java.lang.Object org.graalvm.compiler.hotspot.word.KlassPointer int jdk.vm.ci.code.Register jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word jdk.internal.vm.compiler.word.Pointer
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITORENTER:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 0 /* object */
            aload 8 /* lock */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.monitorenterStubC:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;)V
        35: .line 312
            return
        end local 9 // jdk.internal.vm.compiler.word.Pointer objectPointer
        end local 8 // org.graalvm.compiler.word.Word lock
        end local 7 // org.graalvm.compiler.word.Word mark
        end local 6 // org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters counters
        end local 5 // boolean trace
        end local 4 // jdk.vm.ci.code.Register stackPointerRegister
        end local 3 // jdk.vm.ci.code.Register threadRegister
        end local 2 // int lockDepth
        end local 1 // org.graalvm.compiler.hotspot.word.KlassPointer hub
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   36     0                object  Ljava/lang/Object;
            0   36     1                   hub  Lorg/graalvm/compiler/hotspot/word/KlassPointer;
            0   36     2             lockDepth  I
            0   36     3        threadRegister  Ljdk/vm/ci/code/Register;
            0   36     4  stackPointerRegister  Ljdk/vm/ci/code/Register;
            0   36     5                 trace  Z
            0   36     6              counters  Lorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;
            2   36     7                  mark  Lorg/graalvm/compiler/word/Word;
            3   36     8                  lock  Lorg/graalvm/compiler/word/Word;
            4   36     9         objectPointer  Ljdk/internal/vm/compiler/word/Pointer;
           15   34    10          unlockedMark  Lorg/graalvm/compiler/word/Word;
           19   34    11           currentMark  Lorg/graalvm/compiler/word/Word;
           26   34    12           alignedMask  Lorg/graalvm/compiler/word/Word;
           27   34    13          stackPointer  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      3:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      4:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      5:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      6:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
                      Name  Flags
      object                
      hub                   
      lockDepth             
      threadRegister        
      stackPointerRegister  
      trace                 
      counters              

  private static boolean tryEnterBiased(java.lang.Object, org.graalvm.compiler.hotspot.word.KlassPointer, org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, jdk.vm.ci.code.Register, boolean, org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/compiler/hotspot/word/KlassPointer;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Ljdk/vm/ci/code/Register;ZLorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=14, args_size=7
        start local 0 // java.lang.Object object
        start local 1 // org.graalvm.compiler.hotspot.word.KlassPointer hub
        start local 2 // org.graalvm.compiler.word.Word lock
        start local 3 // org.graalvm.compiler.word.Word mark
        start local 4 // jdk.vm.ci.code.Register threadRegister
        start local 5 // boolean trace
        start local 6 // org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters counters
         0: .line 319
            aload 3 /* mark */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.biasedLockMaskInPlace:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.and:(I)Lorg/graalvm/compiler/word/Word;
            astore 7 /* biasableLockBits */
        start local 7 // org.graalvm.compiler.word.Word biasableLockBits
         1: .line 323
            aload 1 /* hub */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.prototypeMarkWordOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.PROTOTYPE_MARK_WORD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.hotspot.word.KlassPointer.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/word/Word;
            astore 8 /* prototypeMarkWord */
        start local 8 // org.graalvm.compiler.word.Word prototypeMarkWord
         2: .line 324
            aload 4 /* threadRegister */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.registerAsWord:(Ljdk/vm/ci/code/Register;)Lorg/graalvm/compiler/word/Word;
            astore 9 /* thread */
        start local 9 // org.graalvm.compiler.word.Word thread
         3: .line 325
            aload 8 /* prototypeMarkWord */
            aload 9 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.or:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            aload 3 /* mark */
            invokevirtual org.graalvm.compiler.word.Word.xor:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.ageMaskInPlace:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            iconst_m1
            ixor
            invokevirtual org.graalvm.compiler.word.Word.and:(I)Lorg/graalvm/compiler/word/Word;
            astore 10 /* tmp */
        start local 10 // org.graalvm.compiler.word.Word tmp
         4: .line 326
            iload 5 /* trace */
            ldc "prototypeMarkWord: 0x%016lx\n"
            aload 8 /* prototypeMarkWord */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
         5: .line 327
            iload 5 /* trace */
            ldc "           thread: 0x%016lx\n"
            aload 9 /* thread */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
         6: .line 328
            iload 5 /* trace */
            ldc "              tmp: 0x%016lx\n"
            aload 10 /* tmp */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
         7: .line 329
            ldc 0.99
            aload 10 /* tmp */
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.equal:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 12
         8: .line 331
            iload 5 /* trace */
            ldc "+lock{bias:existing}"
            aload 0 /* object */
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
         9: .line 332
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.lockBiasExisting:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        10: .line 333
            aload 0 /* object */
            invokestatic org.graalvm.compiler.hotspot.nodes.FastAcquireBiasedLockNode.mark:(Ljava/lang/Object;)V
        11: .line 334
            iconst_1
            ireturn
        12: .line 338
      StackMap locals: java.lang.Object org.graalvm.compiler.hotspot.word.KlassPointer org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
      StackMap stack:
            ldc 0.09999999999999998
            aload 7 /* biasableLockBits */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.biasedLockPattern:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            invokevirtual org.graalvm.compiler.word.Word.equal:(Lorg/graalvm/compiler/word/Word;)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 40
        13: .line 339
            aload 0 /* object */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 11 /* objectPointer */
        start local 11 // jdk.internal.vm.compiler.word.Pointer objectPointer
        14: .line 349
            ldc 0.9
            aload 10 /* tmp */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.biasedLockMaskInPlace:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.and:(I)Lorg/graalvm/compiler/word/Word;
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.equal:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 37
        15: .line 359
            ldc 0.9
            aload 10 /* tmp */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.epochMaskInPlace:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.and:(I)Lorg/graalvm/compiler/word/Word;
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.equal:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 27
        16: .line 366
            aload 3 /* mark */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.biasedLockMaskInPlace:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.ageMaskInPlace:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            ior
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.epochMaskInPlace:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            ior
            invokevirtual org.graalvm.compiler.word.Word.and:(I)Lorg/graalvm/compiler/word/Word;
            astore 12 /* unbiasedMark */
        start local 12 // org.graalvm.compiler.word.Word unbiasedMark
        17: .line 367
            aload 12 /* unbiasedMark */
            aload 9 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.or:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 13 /* biasedMark */
        start local 13 // org.graalvm.compiler.word.Word biasedMark
        18: .line 368
            iload 5 /* trace */
            ldc "     unbiasedMark: 0x%016lx\n"
            aload 12 /* unbiasedMark */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
        19: .line 369
            iload 5 /* trace */
            ldc "       biasedMark: 0x%016lx\n"
            aload 13 /* biasedMark */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
        20: .line 370
            ldc 0.999
            aload 11 /* objectPointer */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.markOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            aload 12 /* unbiasedMark */
            aload 13 /* biasedMark */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.MARK_WORD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokeinterface jdk.internal.vm.compiler.word.Pointer.logicCompareAndSwapWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 24
        21: .line 372
            iload 5 /* trace */
            ldc "+lock{bias:acquired}"
            aload 0 /* object */
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        22: .line 373
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.lockBiasAcquired:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        23: .line 374
            iconst_1
            ireturn
        24: .line 379
      StackMap locals: jdk.internal.vm.compiler.word.Pointer org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
      StackMap stack:
            iload 5 /* trace */
            ldc "+lock{stub:revoke}"
            aload 0 /* object */
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        25: .line 380
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.lockStubRevoke:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        end local 13 // org.graalvm.compiler.word.Word biasedMark
        end local 12 // org.graalvm.compiler.word.Word unbiasedMark
        26: .line 381
            goto 35
        27: .line 388
      StackMap locals:
      StackMap stack:
            aload 8 /* prototypeMarkWord */
            aload 9 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.or:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 12 /* biasedMark */
        start local 12 // org.graalvm.compiler.word.Word biasedMark
        28: .line 389
            iload 5 /* trace */
            ldc "       biasedMark: 0x%016lx\n"
            aload 12 /* biasedMark */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
        29: .line 390
            ldc 0.999
            aload 11 /* objectPointer */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.markOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            aload 3 /* mark */
            aload 12 /* biasedMark */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.MARK_WORD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokeinterface jdk.internal.vm.compiler.word.Pointer.logicCompareAndSwapWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 33
        30: .line 392
            iload 5 /* trace */
            ldc "+lock{bias:transfer}"
            aload 0 /* object */
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        31: .line 393
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.lockBiasTransfer:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        32: .line 394
            iconst_1
            ireturn
        33: .line 399
      StackMap locals: org.graalvm.compiler.word.Word
      StackMap stack:
            iload 5 /* trace */
            ldc "+lock{stub:epoch-expired}"
            aload 0 /* object */
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        34: .line 400
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.lockStubEpochExpired:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        end local 12 // org.graalvm.compiler.word.Word biasedMark
        35: .line 403
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITORENTER:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 0 /* object */
            aload 2 /* lock */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.monitorenterStubC:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;)V
        36: .line 404
            iconst_1
            ireturn
        37: .line 414
      StackMap locals:
      StackMap stack:
            aload 11 /* objectPointer */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.markOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            aload 3 /* mark */
            aload 8 /* prototypeMarkWord */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.MARK_WORD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokeinterface jdk.internal.vm.compiler.word.Pointer.compareAndSwapWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 12 /* result */
        start local 12 // org.graalvm.compiler.word.Word result
        38: .line 423
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.revokeBias:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        39: .line 424
            iconst_0
            ireturn
        end local 12 // org.graalvm.compiler.word.Word result
        end local 11 // jdk.internal.vm.compiler.word.Pointer objectPointer
        40: .line 428
      StackMap locals:
      StackMap stack:
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.unbiasable:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        41: .line 429
            iconst_0
            ireturn
        end local 10 // org.graalvm.compiler.word.Word tmp
        end local 9 // org.graalvm.compiler.word.Word thread
        end local 8 // org.graalvm.compiler.word.Word prototypeMarkWord
        end local 7 // org.graalvm.compiler.word.Word biasableLockBits
        end local 6 // org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters counters
        end local 5 // boolean trace
        end local 4 // jdk.vm.ci.code.Register threadRegister
        end local 3 // org.graalvm.compiler.word.Word mark
        end local 2 // org.graalvm.compiler.word.Word lock
        end local 1 // org.graalvm.compiler.hotspot.word.KlassPointer hub
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   42     0             object  Ljava/lang/Object;
            0   42     1                hub  Lorg/graalvm/compiler/hotspot/word/KlassPointer;
            0   42     2               lock  Lorg/graalvm/compiler/word/Word;
            0   42     3               mark  Lorg/graalvm/compiler/word/Word;
            0   42     4     threadRegister  Ljdk/vm/ci/code/Register;
            0   42     5              trace  Z
            0   42     6           counters  Lorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;
            1   42     7   biasableLockBits  Lorg/graalvm/compiler/word/Word;
            2   42     8  prototypeMarkWord  Lorg/graalvm/compiler/word/Word;
            3   42     9             thread  Lorg/graalvm/compiler/word/Word;
            4   42    10                tmp  Lorg/graalvm/compiler/word/Word;
           14   40    11      objectPointer  Ljdk/internal/vm/compiler/word/Pointer;
           17   26    12       unbiasedMark  Lorg/graalvm/compiler/word/Word;
           18   26    13         biasedMark  Lorg/graalvm/compiler/word/Word;
           28   35    12         biasedMark  Lorg/graalvm/compiler/word/Word;
           38   40    12             result  Lorg/graalvm/compiler/word/Word;
    MethodParameters:
                Name  Flags
      object          
      hub             
      lock            
      mark            
      threadRegister  
      trace           
      counters        

  public static boolean useFastInflatedLocking(org.graalvm.compiler.options.OptionValues);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValues options
         0: .line 435
            getstatic org.graalvm.compiler.hotspot.replacements.HotspotSnippetsOptions.SimpleFastInflatedLocking:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* options */
            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
            ireturn
        end local 0 // org.graalvm.compiler.options.OptionValues options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  options  Lorg/graalvm/compiler/options/OptionValues;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.api.replacements.Fold$InjectedParameter()
    MethodParameters:
         Name  Flags
      options  

  private static boolean inlineFastLockSupported();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 439
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_OPTIONVALUES:Lorg/graalvm/compiler/options/OptionValues;
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.inlineFastLockSupported:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Lorg/graalvm/compiler/options/OptionValues;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean inlineFastLockSupported(org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, org.graalvm.compiler.options.OptionValues);
    descriptor: (Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Lorg/graalvm/compiler/options/OptionValues;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 1 // org.graalvm.compiler.options.OptionValues options
         0: .line 443
            aload 1 /* options */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.useFastInflatedLocking:(Lorg/graalvm/compiler/options/OptionValues;)Z
            ifeq 1
            aload 0 /* config */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.monitorMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            iflt 1
            aload 0 /* config */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.objectMonitorOwnerOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            iflt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.options.OptionValues options
        end local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0   config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    2     1  options  Lorg/graalvm/compiler/options/OptionValues;
    MethodParameters:
         Name  Flags
      config   
      options  

  private static boolean tryEnterInflated(java.lang.Object, org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, jdk.vm.ci.code.Register, boolean, org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Ljdk/vm/ci/code/Register;ZLorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=6
        start local 0 // java.lang.Object object
        start local 1 // org.graalvm.compiler.word.Word lock
        start local 2 // org.graalvm.compiler.word.Word mark
        start local 3 // jdk.vm.ci.code.Register threadRegister
        start local 4 // boolean trace
        start local 5 // org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters counters
         0: .line 448
            aload 1 /* lock */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.lockDisplacedMarkOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            aload 1 /* lock */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.DISPLACED_MARK_WORD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
         1: .line 450
            aload 2 /* mark */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.monitorMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.subtract:(I)Lorg/graalvm/compiler/word/Word;
            astore 6 /* monitor */
        start local 6 // org.graalvm.compiler.word.Word monitor
         2: .line 451
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.objectMonitorOwnerOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            istore 7 /* ownerOffset */
        start local 7 // int ownerOffset
         3: .line 452
            aload 6 /* monitor */
            iload 7 /* ownerOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.OBJECT_MONITOR_OWNER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 8 /* owner */
        start local 8 // org.graalvm.compiler.word.Word owner
         4: .line 453
            ldc 0.9
            aload 8 /* owner */
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.equal:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 12
         5: .line 455
            ldc 0.9
            aload 6 /* monitor */
            iload 7 /* ownerOffset */
            aload 8 /* owner */
            aload 3 /* threadRegister */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.registerAsWord:(Ljdk/vm/ci/code/Register;)Lorg/graalvm/compiler/word/Word;
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.OBJECT_MONITOR_OWNER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.logicCompareAndSwapWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 9
         6: .line 457
            iload 4 /* trace */
            ldc "+lock{inflated:cas}"
            aload 0 /* object */
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
         7: .line 458
            aload 5 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.inflatedCas:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
         8: .line 459
            iconst_1
            ireturn
         9: .line 461
      StackMap locals: org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word
      StackMap stack:
            iload 4 /* trace */
            ldc "+lock{stub:inflated:failed-cas}"
            aload 0 /* object */
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        10: .line 462
            aload 5 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.inflatedFailedCas:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        11: .line 464
            goto 14
        12: .line 465
      StackMap locals:
      StackMap stack:
            iload 4 /* trace */
            ldc "+lock{stub:inflated:owned}"
            aload 0 /* object */
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        13: .line 466
            aload 5 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.inflatedOwned:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        14: .line 468
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 8 // org.graalvm.compiler.word.Word owner
        end local 7 // int ownerOffset
        end local 6 // org.graalvm.compiler.word.Word monitor
        end local 5 // org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters counters
        end local 4 // boolean trace
        end local 3 // jdk.vm.ci.code.Register threadRegister
        end local 2 // org.graalvm.compiler.word.Word mark
        end local 1 // org.graalvm.compiler.word.Word lock
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0          object  Ljava/lang/Object;
            0   15     1            lock  Lorg/graalvm/compiler/word/Word;
            0   15     2            mark  Lorg/graalvm/compiler/word/Word;
            0   15     3  threadRegister  Ljdk/vm/ci/code/Register;
            0   15     4           trace  Z
            0   15     5        counters  Lorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;
            2   15     6         monitor  Lorg/graalvm/compiler/word/Word;
            3   15     7     ownerOffset  I
            4   15     8           owner  Lorg/graalvm/compiler/word/Word;
    MethodParameters:
                Name  Flags
      object          
      lock            
      mark            
      threadRegister  
      trace           
      counters        

  public static void monitorenterStub(java.lang.Object, int, boolean);
    descriptor: (Ljava/lang/Object;IZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.Object object
        start local 1 // int lockDepth
        start local 2 // boolean trace
         0: .line 476
            aload 0 /* object */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.verifyOop:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 477
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.incCounter:()V
         2: .line 478
            dconst_0
            aload 0 /* object */
            ifnonnull 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: double
         3: iconst_0
      StackMap locals: java.lang.Object int int
      StackMap stack: double int
         4: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 6
         5: .line 479
            getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateReprofile:Ljdk/vm/ci/meta/DeoptimizationAction;
            getstatic jdk.vm.ci.meta.DeoptimizationReason.NullCheckException:Ljdk/vm/ci/meta/DeoptimizationReason;
            invokestatic org.graalvm.compiler.nodes.DeoptimizeNode.deopt:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
         6: .line 483
      StackMap locals:
      StackMap stack:
            iload 1 /* lockDepth */
            invokestatic org.graalvm.compiler.hotspot.nodes.BeginLockScopeNode.beginLockScope:(I)Lorg/graalvm/compiler/word/Word;
            astore 3 /* lock */
        start local 3 // org.graalvm.compiler.word.Word lock
         7: .line 484
            iload 2 /* trace */
            ldc "+lock{stub}"
            aload 0 /* object */
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
         8: .line 485
            getstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITORENTER:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 0 /* object */
            aload 3 /* lock */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.monitorenterStubC:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;)V
         9: .line 486
            return
        end local 3 // org.graalvm.compiler.word.Word lock
        end local 2 // boolean trace
        end local 1 // int lockDepth
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0     object  Ljava/lang/Object;
            0   10     1  lockDepth  I
            0   10     2      trace  Z
            7   10     3       lock  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      2:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
           Name  Flags
      object     
      lockDepth  
      trace      

  public static void monitorexit(java.lang.Object, int, jdk.vm.ci.code.Register, boolean, org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters);
    descriptor: (Ljava/lang/Object;ILjdk/vm/ci/code/Register;ZLorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // java.lang.Object object
        start local 1 // int lockDepth
        start local 2 // jdk.vm.ci.code.Register threadRegister
        start local 3 // boolean trace
        start local 4 // org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters counters
         0: .line 491
            iload 3 /* trace */
            ldc "           object: 0x%016lx\n"
            aload 0 /* object */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
         1: .line 492
            aload 0 /* object */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.markOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadWordFromObject:(Ljava/lang/Object;I)Lorg/graalvm/compiler/word/Word;
            astore 5 /* mark */
        start local 5 // org.graalvm.compiler.word.Word mark
         2: .line 493
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.useBiasedLocking:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
            ifeq 10
         3: .line 500
            iload 3 /* trace */
            ldc "             mark: 0x%016lx\n"
            aload 5 /* mark */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
         4: .line 501
            ldc 0.9
            aload 5 /* mark */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.biasedLockMaskInPlace:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.and:(I)Lorg/graalvm/compiler/word/Word;
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.biasedLockPattern:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            invokevirtual org.graalvm.compiler.word.Word.equal:(Lorg/graalvm/compiler/word/Word;)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 10
         5: .line 502
            invokestatic org.graalvm.compiler.hotspot.nodes.EndLockScopeNode.endLockScope:()V
         6: .line 503
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.decCounter:()V
         7: .line 504
            iload 3 /* trace */
            ldc "-lock{bias}"
            aload 0 /* object */
            iconst_0
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
         8: .line 505
            aload 4 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.unlockBias:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
         9: .line 506
            return
        10: .line 510
      StackMap locals: org.graalvm.compiler.word.Word
      StackMap stack:
            iload 1 /* lockDepth */
            invokestatic org.graalvm.compiler.hotspot.nodes.CurrentLockNode.currentLock:(I)Lorg/graalvm/compiler/word/Word;
            astore 6 /* lock */
        start local 6 // org.graalvm.compiler.word.Word lock
        11: .line 513
            aload 6 /* lock */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.lockDisplacedMarkOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.DISPLACED_MARK_WORD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 7 /* displacedMark */
        start local 7 // org.graalvm.compiler.word.Word displacedMark
        12: .line 514
            iload 3 /* trace */
            ldc "    displacedMark: 0x%016lx\n"
            aload 7 /* displacedMark */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.trace:(ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
        13: .line 516
            ldc 0.4
            aload 7 /* displacedMark */
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.equal:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 17
        14: .line 518
            iload 3 /* trace */
            ldc "-lock{recursive}"
            aload 0 /* object */
            iconst_0
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        15: .line 519
            aload 4 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.unlockCasRecursive:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        16: .line 520
            goto 27
        17: .line 521
      StackMap locals: org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
      StackMap stack:
            aload 0 /* object */
            aload 5 /* mark */
            aload 6 /* lock */
            aload 2 /* threadRegister */
            iload 3 /* trace */
            aload 4 /* counters */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.tryExitInflated:(Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Ljdk/vm/ci/code/Register;ZLorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;)Z
            ifne 27
        18: .line 522
            aload 0 /* object */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.verifyOop:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 527
            aload 0 /* object */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 8 /* objectPointer */
        start local 8 // jdk.internal.vm.compiler.word.Pointer objectPointer
        20: .line 528
            ldc 0.999
            aload 8 /* objectPointer */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.markOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            aload 6 /* lock */
            aload 7 /* displacedMark */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.MARK_WORD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokeinterface jdk.internal.vm.compiler.word.Pointer.logicCompareAndSwapWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 24
        21: .line 529
            iload 3 /* trace */
            ldc "-lock{cas}"
            aload 0 /* object */
            iconst_0
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        22: .line 530
            aload 4 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.unlockCas:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        23: .line 531
            goto 27
        24: .line 533
      StackMap locals: jdk.internal.vm.compiler.word.Pointer
      StackMap stack:
            iload 3 /* trace */
            ldc "-lock{stub}"
            aload 0 /* object */
            iconst_0
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        25: .line 534
            aload 4 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.unlockStub:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        26: .line 535
            getstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITOREXIT:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 0 /* object */
            aload 6 /* lock */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.monitorexitStubC:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;)V
        end local 8 // jdk.internal.vm.compiler.word.Pointer objectPointer
        27: .line 539
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.hotspot.nodes.EndLockScopeNode.endLockScope:()V
        28: .line 540
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.decCounter:()V
        29: .line 541
            return
        end local 7 // org.graalvm.compiler.word.Word displacedMark
        end local 6 // org.graalvm.compiler.word.Word lock
        end local 5 // org.graalvm.compiler.word.Word mark
        end local 4 // org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters counters
        end local 3 // boolean trace
        end local 2 // jdk.vm.ci.code.Register threadRegister
        end local 1 // int lockDepth
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   30     0          object  Ljava/lang/Object;
            0   30     1       lockDepth  I
            0   30     2  threadRegister  Ljdk/vm/ci/code/Register;
            0   30     3           trace  Z
            0   30     4        counters  Lorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;
            2   30     5            mark  Lorg/graalvm/compiler/word/Word;
           11   30     6            lock  Lorg/graalvm/compiler/word/Word;
           12   30     7   displacedMark  Lorg/graalvm/compiler/word/Word;
           20   27     8   objectPointer  Ljdk/internal/vm/compiler/word/Pointer;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      2:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      3:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      4:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
                Name  Flags
      object          
      lockDepth       
      threadRegister  
      trace           
      counters        

  private static boolean inlineFastUnlockSupported(org.graalvm.compiler.options.OptionValues);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValues options
         0: .line 544
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            aload 0 /* options */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.inlineFastUnlockSupported:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Lorg/graalvm/compiler/options/OptionValues;)Z
            ireturn
        end local 0 // org.graalvm.compiler.options.OptionValues options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  options  Lorg/graalvm/compiler/options/OptionValues;
    MethodParameters:
         Name  Flags
      options  

  private static boolean inlineFastUnlockSupported(org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, org.graalvm.compiler.options.OptionValues);
    descriptor: (Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Lorg/graalvm/compiler/options/OptionValues;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 1 // org.graalvm.compiler.options.OptionValues options
         0: .line 548
            aload 1 /* options */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.useFastInflatedLocking:(Lorg/graalvm/compiler/options/OptionValues;)Z
            ifeq 3
            aload 0 /* config */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.objectMonitorEntryListOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            iflt 3
            aload 0 /* config */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.objectMonitorCxqOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            iflt 3
            aload 0 /* config */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.monitorMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            iflt 3
         1: .line 549
            aload 0 /* config */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.objectMonitorOwnerOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            iflt 3
            aload 0 /* config */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.objectMonitorRecursionsOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
         2: .line 548
            iflt 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.options.OptionValues options
        end local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0   config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    4     1  options  Lorg/graalvm/compiler/options/OptionValues;
    MethodParameters:
         Name  Flags
      config   
      options  

  private static boolean tryExitInflated(java.lang.Object, org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, jdk.vm.ci.code.Register, boolean, org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Ljdk/vm/ci/code/Register;ZLorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=18, args_size=6
        start local 0 // java.lang.Object object
        start local 1 // org.graalvm.compiler.word.Word mark
        start local 2 // org.graalvm.compiler.word.Word lock
        start local 3 // jdk.vm.ci.code.Register threadRegister
        start local 4 // boolean trace
        start local 5 // org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters counters
         0: .line 553
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_OPTIONVALUES:Lorg/graalvm/compiler/options/OptionValues;
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.inlineFastUnlockSupported:(Lorg/graalvm/compiler/options/OptionValues;)Z
            ifne 2
         1: .line 554
            iconst_0
            ireturn
         2: .line 556
      StackMap locals:
      StackMap stack:
            ldc 0.010000000000000009
            aload 1 /* mark */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.monitorMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.and:(I)Lorg/graalvm/compiler/word/Word;
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.notEqual:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 40
         3: .line 559
            aload 1 /* mark */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.monitorMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.subtract:(I)Lorg/graalvm/compiler/word/Word;
            astore 6 /* monitor */
        start local 6 // org.graalvm.compiler.word.Word monitor
         4: .line 560
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.objectMonitorOwnerOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            istore 7 /* ownerOffset */
        start local 7 // int ownerOffset
         5: .line 561
            aload 6 /* monitor */
            iload 7 /* ownerOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.OBJECT_MONITOR_OWNER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 8 /* owner */
        start local 8 // org.graalvm.compiler.word.Word owner
         6: .line 562
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.objectMonitorRecursionsOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            istore 9 /* recursionsOffset */
        start local 9 // int recursionsOffset
         7: .line 563
            aload 6 /* monitor */
            iload 9 /* recursionsOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.OBJECT_MONITOR_RECURSION_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 10 /* recursions */
        start local 10 // org.graalvm.compiler.word.Word recursions
         8: .line 564
            aload 3 /* threadRegister */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.registerAsWord:(Ljdk/vm/ci/code/Register;)Lorg/graalvm/compiler/word/Word;
            astore 11 /* thread */
        start local 11 // org.graalvm.compiler.word.Word thread
         9: .line 565
            ldc 0.99
            aload 8 /* owner */
            aload 11 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.xor:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            aload 10 /* recursions */
            invokevirtual org.graalvm.compiler.word.Word.or:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.equal:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 36
        10: .line 567
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.objectMonitorCxqOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            istore 12 /* cxqOffset */
        start local 12 // int cxqOffset
        11: .line 568
            aload 6 /* monitor */
            iload 12 /* cxqOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.OBJECT_MONITOR_CXQ_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 13 /* cxq */
        start local 13 // org.graalvm.compiler.word.Word cxq
        12: .line 569
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.objectMonitorEntryListOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            istore 14 /* entryListOffset */
        start local 14 // int entryListOffset
        13: .line 570
            aload 6 /* monitor */
            iload 14 /* entryListOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.OBJECT_MONITOR_ENTRY_LIST_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 15 /* entryList */
        start local 15 // org.graalvm.compiler.word.Word entryList
        14: .line 571
            ldc 0.9
            aload 13 /* cxq */
            aload 15 /* entryList */
            invokevirtual org.graalvm.compiler.word.Word.or:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.equal:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 20
        15: .line 575
            bipush 10
            invokestatic org.graalvm.compiler.nodes.extended.MembarNode.memoryBarrier:(I)V
        16: .line 576
            aload 6 /* monitor */
            iload 7 /* ownerOffset */
            invokestatic jdk.internal.vm.compiler.word.WordFactory.zero:()Ljdk/internal/vm/compiler/word/WordBase;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;)V
        17: .line 577
            iload 4 /* trace */
            ldc "-lock{inflated:simple}"
            aload 0 /* object */
            iconst_0
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        18: .line 578
            aload 5 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.unlockInflatedSimple:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        19: .line 579
            iconst_1
            ireturn
        20: .line 581
      StackMap locals: java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.objectMonitorSuccOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            istore 16 /* succOffset */
        start local 16 // int succOffset
        21: .line 582
            aload 6 /* monitor */
            iload 16 /* succOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.OBJECT_MONITOR_SUCC_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 17 /* succ */
        start local 17 // org.graalvm.compiler.word.Word succ
        22: .line 583
            ldc 0.9
            aload 17 /* succ */
            invokevirtual org.graalvm.compiler.word.Word.isNonNull:()Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 36
        23: .line 586
            aload 6 /* monitor */
            iload 7 /* ownerOffset */
            invokestatic jdk.internal.vm.compiler.word.WordFactory.zero:()Ljdk/internal/vm/compiler/word/WordBase;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;)V
        24: .line 587
            bipush 12
            invokestatic org.graalvm.compiler.nodes.extended.MembarNode.memoryBarrier:(I)V
        25: .line 588
            aload 6 /* monitor */
            iload 16 /* succOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.OBJECT_MONITOR_SUCC_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 17 /* succ */
        26: .line 589
            ldc 0.09999999999999998
            aload 17 /* succ */
            invokevirtual org.graalvm.compiler.word.Word.isNonNull:()Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 30
        27: .line 592
            iload 4 /* trace */
            ldc "-lock{inflated:transfer}"
            aload 0 /* object */
            iconst_0
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        28: .line 593
            aload 5 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.unlockInflatedTransfer:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        29: .line 594
            iconst_1
            ireturn
        30: .line 598
      StackMap locals: int org.graalvm.compiler.word.Word
      StackMap stack:
            ldc 0.9
            aload 6 /* monitor */
            iload 7 /* ownerOffset */
            invokestatic jdk.internal.vm.compiler.word.WordFactory.zero:()Ljdk/internal/vm/compiler/word/WordBase;
            aload 11 /* thread */
            getstatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.OBJECT_MONITOR_OWNER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.logicCompareAndSwapWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)Z
            ifeq 31
            iconst_0
            goto 32
      StackMap locals:
      StackMap stack: double
        31: iconst_1
      StackMap locals: java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word
      StackMap stack: double int
        32: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 36
        33: .line 600
            iload 4 /* trace */
            ldc "-lock{inflated:transfer}"
            aload 0 /* object */
            iconst_0
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        34: .line 601
            aload 5 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.unlockInflatedTransfer:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        35: .line 602
            iconst_1
            ireturn
        end local 17 // org.graalvm.compiler.word.Word succ
        end local 16 // int succOffset
        end local 15 // org.graalvm.compiler.word.Word entryList
        end local 14 // int entryListOffset
        end local 13 // org.graalvm.compiler.word.Word cxq
        end local 12 // int cxqOffset
        36: .line 608
      StackMap locals: java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
      StackMap stack:
            aload 5 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters.unlockStubInflated:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        37: .line 609
            iload 4 /* trace */
            ldc "-lock{stub:inflated}"
            aload 0 /* object */
            iconst_0
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
        38: .line 610
            getstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITOREXIT:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 0 /* object */
            aload 2 /* lock */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.monitorexitStubC:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;)V
        39: .line 611
            iconst_1
            ireturn
        end local 11 // org.graalvm.compiler.word.Word thread
        end local 10 // org.graalvm.compiler.word.Word recursions
        end local 9 // int recursionsOffset
        end local 8 // org.graalvm.compiler.word.Word owner
        end local 7 // int ownerOffset
        end local 6 // org.graalvm.compiler.word.Word monitor
        40: .line 613
      StackMap locals: java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters counters
        end local 4 // boolean trace
        end local 3 // jdk.vm.ci.code.Register threadRegister
        end local 2 // org.graalvm.compiler.word.Word lock
        end local 1 // org.graalvm.compiler.word.Word mark
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   41     0            object  Ljava/lang/Object;
            0   41     1              mark  Lorg/graalvm/compiler/word/Word;
            0   41     2              lock  Lorg/graalvm/compiler/word/Word;
            0   41     3    threadRegister  Ljdk/vm/ci/code/Register;
            0   41     4             trace  Z
            0   41     5          counters  Lorg/graalvm/compiler/hotspot/replacements/MonitorSnippets$Counters;
            4   40     6           monitor  Lorg/graalvm/compiler/word/Word;
            5   40     7       ownerOffset  I
            6   40     8             owner  Lorg/graalvm/compiler/word/Word;
            7   40     9  recursionsOffset  I
            8   40    10        recursions  Lorg/graalvm/compiler/word/Word;
            9   40    11            thread  Lorg/graalvm/compiler/word/Word;
           11   36    12         cxqOffset  I
           12   36    13               cxq  Lorg/graalvm/compiler/word/Word;
           13   36    14   entryListOffset  I
           14   36    15         entryList  Lorg/graalvm/compiler/word/Word;
           21   36    16        succOffset  I
           22   36    17              succ  Lorg/graalvm/compiler/word/Word;
    MethodParameters:
                Name  Flags
      object          
      mark            
      lock            
      threadRegister  
      trace           
      counters        

  public static void monitorexitStub(java.lang.Object, int, boolean);
    descriptor: (Ljava/lang/Object;IZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.Object object
        start local 1 // int lockDepth
        start local 2 // boolean trace
         0: .line 621
            aload 0 /* object */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.verifyOop:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 622
            iload 2 /* trace */
            ldc "-lock{stub}"
            aload 0 /* object */
            iconst_0
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.traceObject:(ZLjava/lang/String;Ljava/lang/Object;Z)V
         2: .line 623
            iload 1 /* lockDepth */
            invokestatic org.graalvm.compiler.hotspot.nodes.CurrentLockNode.currentLock:(I)Lorg/graalvm/compiler/word/Word;
            astore 3 /* lock */
        start local 3 // org.graalvm.compiler.word.Word lock
         3: .line 624
            getstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITOREXIT:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 0 /* object */
            aload 3 /* lock */
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.monitorexitStubC:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;)V
         4: .line 625
            invokestatic org.graalvm.compiler.hotspot.nodes.EndLockScopeNode.endLockScope:()V
         5: .line 626
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.decCounter:()V
         6: .line 627
            return
        end local 3 // org.graalvm.compiler.word.Word lock
        end local 2 // boolean trace
        end local 1 // int lockDepth
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0     object  Ljava/lang/Object;
            0    7     1  lockDepth  I
            0    7     2      trace  Z
            3    7     3       lock  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      2:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
           Name  Flags
      object     
      lockDepth  
      trace      

  public static void traceObject(boolean, java.lang.String, java.lang.Object, boolean);
    descriptor: (ZLjava/lang/String;Ljava/lang/Object;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // boolean enabled
        start local 1 // java.lang.String action
        start local 2 // java.lang.Object object
        start local 3 // boolean enter
         0: .line 630
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_OPTIONVALUES:Lorg/graalvm/compiler/options/OptionValues;
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.doProfile:(Lorg/graalvm/compiler/options/OptionValues;)Z
            ifeq 4
         1: .line 631
            iload 3 /* enter */
            ifeq 2
            ldc "number of monitor enters"
            goto 3
      StackMap locals:
      StackMap stack:
         2: ldc "number of monitor exits"
      StackMap locals:
      StackMap stack: java.lang.String
         3: aload 1 /* action */
            lconst_1
            iconst_0
            invokestatic org.graalvm.compiler.nodes.debug.DynamicCounterNode.counter:(Ljava/lang/String;Ljava/lang/String;JZ)V
         4: .line 633
      StackMap locals:
      StackMap stack:
            iload 0 /* enabled */
            ifeq 8
         5: .line 634
            aload 1 /* action */
            invokestatic org.graalvm.compiler.hotspot.replacements.Log.print:(Ljava/lang/String;)V
         6: .line 635
            bipush 32
            invokestatic org.graalvm.compiler.hotspot.replacements.Log.print:(C)V
         7: .line 636
            aload 2 /* object */
            invokestatic org.graalvm.compiler.hotspot.replacements.Log.printlnObject:(Ljava/lang/Object;)V
         8: .line 638
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean enter
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String action
        end local 0 // boolean enabled
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0  enabled  Z
            0    9     1   action  Ljava/lang/String;
            0    9     2   object  Ljava/lang/Object;
            0    9     3    enter  Z
    MethodParameters:
         Name  Flags
      enabled  
      action   
      object   
      enter    

  public static void trace(boolean, java.lang.String, jdk.internal.vm.compiler.word.WordBase);
    descriptor: (ZLjava/lang/String;Ljdk/internal/vm/compiler/word/WordBase;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // boolean enabled
        start local 1 // java.lang.String format
        start local 2 // jdk.internal.vm.compiler.word.WordBase value
         0: .line 641
            iload 0 /* enabled */
            ifeq 2
         1: .line 642
            aload 1 /* format */
            aload 2 /* value */
            invokeinterface jdk.internal.vm.compiler.word.WordBase.rawValue:()J
            invokestatic org.graalvm.compiler.hotspot.replacements.Log.printf:(Ljava/lang/String;J)V
         2: .line 644
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.internal.vm.compiler.word.WordBase value
        end local 1 // java.lang.String format
        end local 0 // boolean enabled
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  enabled  Z
            0    3     1   format  Ljava/lang/String;
            0    3     2    value  Ljdk/internal/vm/compiler/word/WordBase;
    MethodParameters:
         Name  Flags
      enabled  
      format   
      value    

  static native void bkpt(java.lang.Object, org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;)V
    flags: (0x0108) ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/BreakpointNode;)
    MethodParameters:
        Name  Flags
      object  
      mark    
      tmp     
      value   

  static boolean verifyBalancedMonitors(org.graalvm.compiler.options.OptionValues);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValues options
         0: .line 659
            getstatic org.graalvm.compiler.hotspot.replacements.HotspotSnippetsOptions.VerifyBalancedMonitors:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* options */
            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
            ireturn
        end local 0 // org.graalvm.compiler.options.OptionValues options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  options  Lorg/graalvm/compiler/options/OptionValues;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.api.replacements.Fold$InjectedParameter()
    MethodParameters:
         Name  Flags
      options  

  static void incCounter();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=0
         0: .line 663
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_OPTIONVALUES:Lorg/graalvm/compiler/options/OptionValues;
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.verifyBalancedMonitors:(Lorg/graalvm/compiler/options/OptionValues;)Z
            ifeq 4
         1: .line 664
            invokestatic org.graalvm.compiler.hotspot.nodes.MonitorCounterNode.counter:()Lorg/graalvm/compiler/word/Word;
            astore 0 /* counter */
        start local 0 // org.graalvm.compiler.word.Word counter
         2: .line 665
            aload 0 /* counter */
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITOR_COUNTER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readInt:(ILjdk/internal/vm/compiler/word/LocationIdentity;)I
            istore 1 /* count */
        start local 1 // int count
         3: .line 666
            aload 0 /* counter */
            iconst_0
            iload 1 /* count */
            iconst_1
            iadd
            getstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITOR_COUNTER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeInt:(IILjdk/internal/vm/compiler/word/LocationIdentity;)V
        end local 1 // int count
        end local 0 // org.graalvm.compiler.word.Word counter
         4: .line 668
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            2    4     0  counter  Lorg/graalvm/compiler/word/Word;
            3    4     1    count  I

  public static void decCounter();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=0
         0: .line 671
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_OPTIONVALUES:Lorg/graalvm/compiler/options/OptionValues;
            invokestatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.verifyBalancedMonitors:(Lorg/graalvm/compiler/options/OptionValues;)Z
            ifeq 4
         1: .line 672
            invokestatic org.graalvm.compiler.hotspot.nodes.MonitorCounterNode.counter:()Lorg/graalvm/compiler/word/Word;
            astore 0 /* counter */
        start local 0 // org.graalvm.compiler.word.Word counter
         2: .line 673
            aload 0 /* counter */
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITOR_COUNTER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readInt:(ILjdk/internal/vm/compiler/word/LocationIdentity;)I
            istore 1 /* count */
        start local 1 // int count
         3: .line 674
            aload 0 /* counter */
            iconst_0
            iload 1 /* count */
            iconst_1
            isub
            getstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITOR_COUNTER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeInt:(IILjdk/internal/vm/compiler/word/LocationIdentity;)V
        end local 1 // int count
        end local 0 // org.graalvm.compiler.word.Word counter
         4: .line 676
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            2    4     0  counter  Lorg/graalvm/compiler/word/Word;
            3    4     1    count  I

  private static void initCounter();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 680
            invokestatic org.graalvm.compiler.hotspot.nodes.MonitorCounterNode.counter:()Lorg/graalvm/compiler/word/Word;
            astore 0 /* counter */
        start local 0 // org.graalvm.compiler.word.Word counter
         1: .line 681
            aload 0 /* counter */
            iconst_0
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITOR_COUNTER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeInt:(IILjdk/internal/vm/compiler/word/LocationIdentity;)V
         2: .line 682
            return
        end local 0 // org.graalvm.compiler.word.Word counter
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1    3     0  counter  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()

  private static void checkCounter(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.String errMsg
         0: .line 686
            invokestatic org.graalvm.compiler.hotspot.nodes.MonitorCounterNode.counter:()Lorg/graalvm/compiler/word/Word;
            astore 1 /* counter */
        start local 1 // org.graalvm.compiler.word.Word counter
         1: .line 687
            aload 1 /* counter */
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITOR_COUNTER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readInt:(ILjdk/internal/vm/compiler/word/LocationIdentity;)I
            istore 2 /* count */
        start local 2 // int count
         2: .line 688
            iload 2 /* count */
            ifeq 4
         3: .line 689
            aload 0 /* errMsg */
            iload 2 /* count */
            i2l
            invokestatic org.graalvm.compiler.hotspot.nodes.VMErrorNode.vmError:(Ljava/lang/String;J)V
         4: .line 691
      StackMap locals: org.graalvm.compiler.word.Word int
      StackMap stack:
            return
        end local 2 // int count
        end local 1 // org.graalvm.compiler.word.Word counter
        end local 0 // java.lang.String errMsg
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0   errMsg  Ljava/lang/String;
            1    5     1  counter  Lorg/graalvm/compiler/word/Word;
            2    5     2    count  I
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
        Name  Flags
      errMsg  

  private static native void monitorenterStubC(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, java.lang.Object, org.graalvm.compiler.word.Word);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;)
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      1:
      2:
    MethodParameters:
            Name  Flags
      descriptor  
      object      
      lock        

  public static native void monitorexitStubC(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, java.lang.Object, org.graalvm.compiler.word.Word);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;Lorg/graalvm/compiler/word/Word;)V
    flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;)
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      1:
      2:
    MethodParameters:
            Name  Flags
      descriptor  
      object      
      lock        
}
SourceFile: "MonitorSnippets.java"
NestMembers:
  org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters  org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Templates
InnerClasses:
  public abstract InjectedParameter = org.graalvm.compiler.api.replacements.Fold$InjectedParameter of org.graalvm.compiler.api.replacements.Fold
  public abstract ConstantParameter = org.graalvm.compiler.api.replacements.Snippet$ConstantParameter of org.graalvm.compiler.api.replacements.Snippet
  public abstract ConstantNodeParameter = org.graalvm.compiler.graph.Node$ConstantNodeParameter of org.graalvm.compiler.graph.Node
  public abstract NodeIntrinsic = org.graalvm.compiler.graph.Node$NodeIntrinsic of org.graalvm.compiler.graph.Node
  public Counters = org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Counters of org.graalvm.compiler.hotspot.replacements.MonitorSnippets
  public Templates = org.graalvm.compiler.hotspot.replacements.MonitorSnippets$Templates of org.graalvm.compiler.hotspot.replacements.MonitorSnippets