public final class org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin implements org.graalvm.compiler.nodes.graphbuilderconf.NodePlugin
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin
  super_class: java.lang.Object
{
  private static final sun.misc.Unsafe UNSAFE;
    descriptor: Lsun/misc/Unsafe;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config;
    descriptor: Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private static final org.graalvm.word.LocationIdentity JAVA_THREAD_SHOULD_POST_ON_EXCEPTIONS_FLAG_LOCATION;
    descriptor: Lorg/graalvm/word/LocationIdentity;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 67
            ldc Lorg/graalvm/compiler/hotspot/meta/HotSpotExceptionDispatchPlugin;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.$assertionsDisabled:Z
         3: .line 73
            invokestatic org.graalvm.compiler.serviceprovider.GraalUnsafeAccess.getUnsafe:()Lsun/misc/Unsafe;
            putstatic org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.UNSAFE:Lsun/misc/Unsafe;
         4: .line 120
            ldc "JavaThread::_should_post_on_exceptions_flag"
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
            putstatic org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.JAVA_THREAD_SHOULD_POST_ON_EXCEPTIONS_FLAG_LOCATION:Lorg/graalvm/word/LocationIdentity;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, jdk.vm.ci.meta.JavaKind);
    descriptor: (Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljdk/vm/ci/meta/JavaKind;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin this
        start local 1 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 2 // jdk.vm.ci.meta.JavaKind wordKind
         0: .line 77
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 78
            aload 0 /* this */
            aload 1 /* config */
            putfield org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
         2: .line 79
            aload 0 /* this */
            aload 2 /* wordKind */
            putfield org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.wordKind:Ljdk/vm/ci/meta/JavaKind;
         3: .line 80
            return
        end local 2 // jdk.vm.ci.meta.JavaKind wordKind
        end local 1 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 0 // org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/graalvm/compiler/hotspot/meta/HotSpotExceptionDispatchPlugin;
            0    4     1    config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    4     2  wordKind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
          Name  Flags
      config    
      wordKind  

  public org.graalvm.compiler.nodes.FixedWithNextNode instrumentExceptionDispatch(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.FixedWithNextNode, java.util.function.Supplier<org.graalvm.compiler.nodes.FrameState>);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/FixedWithNextNode;Ljava/util/function/Supplier;)Lorg/graalvm/compiler/nodes/FixedWithNextNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=15, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.nodes.FixedWithNextNode afterExceptionLoaded
        start local 3 // java.util.function.Supplier frameStateFunction
         0: .line 84
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.compilationId:()Lorg/graalvm/compiler/core/common/CompilationIdentifier;
            astore 4 /* id */
        start local 4 // org.graalvm.compiler.core.common.CompilationIdentifier id
         1: .line 85
            aload 4 /* id */
            instanceof org.graalvm.compiler.hotspot.HotSpotCompilationIdentifier
            ifeq 28
         2: .line 86
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.jvmciCompileStateCanPostOnExceptionsOffset:I
            ldc -2147483648
            if_icmpeq 28
         3: .line 87
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.javaThreadShouldPostOnExceptionsFlagOffset:I
            ldc -2147483648
            if_icmpeq 28
         4: .line 88
            getstatic org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin$Options.HotSpotPostOnExceptions:Lorg/graalvm/compiler/options/OptionKey;
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 5 /* canPostOnExceptions */
        start local 5 // boolean canPostOnExceptions
         5: .line 89
            aload 4 /* id */
            checkcast org.graalvm.compiler.hotspot.HotSpotCompilationIdentifier
            invokevirtual org.graalvm.compiler.hotspot.HotSpotCompilationIdentifier.getRequest:()Ljdk/vm/ci/hotspot/HotSpotCompilationRequest;
            astore 6 /* request */
        start local 6 // jdk.vm.ci.hotspot.HotSpotCompilationRequest request
         6: .line 90
            aload 6 /* request */
            ifnull 13
         7: .line 91
            aload 6 /* request */
            invokevirtual jdk.vm.ci.hotspot.HotSpotCompilationRequest.getJvmciEnv:()J
            lstore 7 /* compileState */
        start local 7 // long compileState
         8: .line 92
            lload 7 /* compileState */
            lconst_0
            lcmp
            ifeq 13
         9: .line 93
            lload 7 /* compileState */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.jvmciCompileStateCanPostOnExceptionsOffset:I
            i2l
            ladd
            lstore 9 /* canPostOnExceptionsOffset */
        start local 9 // long canPostOnExceptionsOffset
        10: .line 94
            getstatic org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.UNSAFE:Lsun/misc/Unsafe;
            lload 9 /* canPostOnExceptionsOffset */
            invokevirtual sun.misc.Unsafe.getByte:(J)B
            ifeq 11
            iconst_1
            goto 12
      StackMap locals: org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.FixedWithNextNode java.util.function.Supplier org.graalvm.compiler.core.common.CompilationIdentifier int jdk.vm.ci.hotspot.HotSpotCompilationRequest long long
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 5 /* canPostOnExceptions */
        end local 9 // long canPostOnExceptionsOffset
        end local 7 // long compileState
        13: .line 97
      StackMap locals:
      StackMap stack:
            iload 5 /* canPostOnExceptions */
            ifeq 28
        14: .line 102
            aload 1 /* graph */
            new org.graalvm.compiler.hotspot.nodes.CurrentJavaThreadNode
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.wordKind:Ljdk/vm/ci/meta/JavaKind;
            invokespecial org.graalvm.compiler.hotspot.nodes.CurrentJavaThreadNode.<init>:(Ljdk/vm/ci/meta/JavaKind;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.hotspot.nodes.CurrentJavaThreadNode
            astore 7 /* thread */
        start local 7 // org.graalvm.compiler.hotspot.nodes.CurrentJavaThreadNode thread
        15: .line 103
            aload 1 /* graph */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.javaThreadShouldPostOnExceptionsFlagOffset:I
            i2l
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forLong:(J)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 8 /* offset */
        start local 8 // org.graalvm.compiler.nodes.ValueNode offset
        16: .line 104
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            dup
            aload 7 /* thread */
            aload 8 /* offset */
            invokespecial org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.address.AddressNode
            astore 9 /* address */
        start local 9 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        17: .line 105
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.memory.ReadNode
            dup
            aload 9 /* address */
            getstatic org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.JAVA_THREAD_SHOULD_POST_ON_EXCEPTIONS_FLAG_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.intValue:()Lorg/graalvm/compiler/core/common/type/Stamp;
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.ReadNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/word/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.ReadNode
            astore 10 /* shouldPostException */
        start local 10 // org.graalvm.compiler.nodes.memory.ReadNode shouldPostException
        18: .line 106
            aload 2 /* afterExceptionLoaded */
            aload 10 /* shouldPostException */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        19: .line 107
            aload 1 /* graph */
            iconst_0
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(I)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 11 /* zero */
        start local 11 // org.graalvm.compiler.nodes.ValueNode zero
        20: .line 108
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.calc.IntegerEqualsNode
            dup
            aload 10 /* shouldPostException */
            aload 11 /* zero */
            invokespecial org.graalvm.compiler.nodes.calc.IntegerEqualsNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.LogicNode
            astore 12 /* cond */
        start local 12 // org.graalvm.compiler.nodes.LogicNode cond
        21: .line 109
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.FixedGuardNode
            dup
            aload 12 /* cond */
            getstatic jdk.vm.ci.meta.DeoptimizationReason.TransferToInterpreter:Ljdk/vm/ci/meta/DeoptimizationReason;
            getstatic jdk.vm.ci.meta.DeoptimizationAction.None:Ljdk/vm/ci/meta/DeoptimizationAction;
            iconst_0
            invokespecial org.graalvm.compiler.nodes.FixedGuardNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationReason;Ljdk/vm/ci/meta/DeoptimizationAction;Z)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FixedGuardNode
            astore 13 /* check */
        start local 13 // org.graalvm.compiler.nodes.FixedGuardNode check
        22: .line 110
            aload 3 /* frameStateFunction */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.FrameState
            astore 14 /* fs */
        start local 14 // org.graalvm.compiler.nodes.FrameState fs
        23: .line 111
            getstatic org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin.$assertionsDisabled:Z
            ifne 25
            aload 14 /* fs */
            invokevirtual org.graalvm.compiler.nodes.FrameState.stackSize:()I
            iconst_1
            if_icmpne 24
            aload 14 /* fs */
            invokevirtual org.graalvm.compiler.nodes.FrameState.rethrowException:()Z
            ifne 25
      StackMap locals: org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.FixedWithNextNode java.util.function.Supplier org.graalvm.compiler.core.common.CompilationIdentifier int jdk.vm.ci.hotspot.HotSpotCompilationRequest org.graalvm.compiler.hotspot.nodes.CurrentJavaThreadNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.address.AddressNode org.graalvm.compiler.nodes.memory.ReadNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.FixedGuardNode org.graalvm.compiler.nodes.FrameState
      StackMap stack:
        24: new java.lang.AssertionError
            dup
            ldc "expected rethrow exception FrameState"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        25: .line 112
      StackMap locals:
      StackMap stack:
            aload 13 /* check */
            aload 14 /* fs */
            invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.setStateBefore:(Lorg/graalvm/compiler/nodes/FrameState;)V
        26: .line 113
            aload 10 /* shouldPostException */
            aload 13 /* check */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        27: .line 114
            aload 13 /* check */
            areturn
        end local 14 // org.graalvm.compiler.nodes.FrameState fs
        end local 13 // org.graalvm.compiler.nodes.FixedGuardNode check
        end local 12 // org.graalvm.compiler.nodes.LogicNode cond
        end local 11 // org.graalvm.compiler.nodes.ValueNode zero
        end local 10 // org.graalvm.compiler.nodes.memory.ReadNode shouldPostException
        end local 9 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 8 // org.graalvm.compiler.nodes.ValueNode offset
        end local 7 // org.graalvm.compiler.hotspot.nodes.CurrentJavaThreadNode thread
        end local 6 // jdk.vm.ci.hotspot.HotSpotCompilationRequest request
        end local 5 // boolean canPostOnExceptions
        28: .line 117
      StackMap locals: org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.FixedWithNextNode java.util.function.Supplier org.graalvm.compiler.core.common.CompilationIdentifier
      StackMap stack:
            aload 2 /* afterExceptionLoaded */
            areturn
        end local 4 // org.graalvm.compiler.core.common.CompilationIdentifier id
        end local 3 // java.util.function.Supplier frameStateFunction
        end local 2 // org.graalvm.compiler.nodes.FixedWithNextNode afterExceptionLoaded
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   29     0                       this  Lorg/graalvm/compiler/hotspot/meta/HotSpotExceptionDispatchPlugin;
            0   29     1                      graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   29     2       afterExceptionLoaded  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            0   29     3         frameStateFunction  Ljava/util/function/Supplier<Lorg/graalvm/compiler/nodes/FrameState;>;
            1   29     4                         id  Lorg/graalvm/compiler/core/common/CompilationIdentifier;
            5   28     5        canPostOnExceptions  Z
            6   28     6                    request  Ljdk/vm/ci/hotspot/HotSpotCompilationRequest;
            8   13     7               compileState  J
           10   13     9  canPostOnExceptionsOffset  J
           15   28     7                     thread  Lorg/graalvm/compiler/hotspot/nodes/CurrentJavaThreadNode;
           16   28     8                     offset  Lorg/graalvm/compiler/nodes/ValueNode;
           17   28     9                    address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
           18   28    10        shouldPostException  Lorg/graalvm/compiler/nodes/memory/ReadNode;
           20   28    11                       zero  Lorg/graalvm/compiler/nodes/ValueNode;
           21   28    12                       cond  Lorg/graalvm/compiler/nodes/LogicNode;
           22   28    13                      check  Lorg/graalvm/compiler/nodes/FixedGuardNode;
           23   28    14                         fs  Lorg/graalvm/compiler/nodes/FrameState;
    Signature: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/FixedWithNextNode;Ljava/util/function/Supplier<Lorg/graalvm/compiler/nodes/FrameState;>;)Lorg/graalvm/compiler/nodes/FixedWithNextNode;
    MethodParameters:
                      Name  Flags
      graph                 
      afterExceptionLoaded  
      frameStateFunction    
}
SourceFile: "HotSpotExceptionDispatchPlugin.java"
NestMembers:
  org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin$Options
InnerClasses:
  public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
  public Options = org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin$Options of org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin
  public final BarrierType = org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType of org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess