public final class org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp extends org.graalvm.compiler.lir.amd64.AMD64LIRInstruction
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp
  super_class: org.graalvm.compiler.lir.amd64.AMD64LIRInstruction
{
  public static final org.graalvm.compiler.lir.LIRInstructionClass<org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp> TYPE;
    descriptor: Lorg/graalvm/compiler/lir/LIRInstructionClass;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/graalvm/compiler/lir/LIRInstructionClass<Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotSafepointOp;>;

  protected org.graalvm.compiler.lir.LIRFrameState state;
    descriptor: Lorg/graalvm/compiler/lir/LIRFrameState;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.lir.LIRInstruction$State()

  private jdk.vm.ci.meta.AllocatableValue temp;
    descriptor: Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.lir.LIRInstruction$Temp(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;, org.graalvm.compiler.lir.LIRInstruction$OperandFlag.ILLEGAL:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})

  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.code.Register thread;
    descriptor: Ljdk/vm/ci/code/Register;
    flags: (0x0012) ACC_PRIVATE, 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 57
            ldc Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotSafepointOp;
            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.amd64.AMD64HotSpotSafepointOp.$assertionsDisabled:Z
         3: .line 58
            ldc Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotSafepointOp;
            invokestatic org.graalvm.compiler.lir.LIRInstructionClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/lir/LIRInstructionClass;
            putstatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.TYPE:Lorg/graalvm/compiler/lir/LIRInstructionClass;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.lir.LIRFrameState, org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool, jdk.vm.ci.code.Register);
    descriptor: (Lorg/graalvm/compiler/lir/LIRFrameState;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Lorg/graalvm/compiler/nodes/spi/NodeLIRBuilderTool;Ljdk/vm/ci/code/Register;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp this
        start local 1 // org.graalvm.compiler.lir.LIRFrameState state
        start local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 3 // org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool tool
        start local 4 // jdk.vm.ci.code.Register thread
         0: .line 67
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.TYPE:Lorg/graalvm/compiler/lir/LIRInstructionClass;
            invokespecial org.graalvm.compiler.lir.amd64.AMD64LIRInstruction.<init>:(Lorg/graalvm/compiler/lir/LIRInstructionClass;)V
         1: .line 68
            aload 0 /* this */
            aload 1 /* state */
            putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.state:Lorg/graalvm/compiler/lir/LIRFrameState;
         2: .line 69
            aload 0 /* this */
            aload 2 /* config */
            putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
         3: .line 70
            aload 0 /* this */
            aload 4 /* thread */
            putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.thread:Ljdk/vm/ci/code/Register;
         4: .line 71
            aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useThreadLocalPolling:Z
            ifne 5
            aload 2 /* config */
            invokestatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.isPollingPageFar:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
            ifne 5
            getstatic org.graalvm.compiler.core.common.GraalOptions.ImmutableCode:Lorg/graalvm/compiler/options/OptionKey;
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 7
         5: .line 72
      StackMap locals: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp org.graalvm.compiler.lir.LIRFrameState org.graalvm.compiler.hotspot.GraalHotSpotVMConfig org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool jdk.vm.ci.code.Register
      StackMap stack:
            aload 0 /* this */
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.getLIRGeneratorTool:()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.getLIRGeneratorTool:()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            invokevirtual jdk.vm.ci.code.Architecture.getWordKind:()Ljdk/vm/ci/meta/PlatformKind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
            putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.temp:Ljdk/vm/ci/meta/AllocatableValue;
         6: .line 73
            goto 8
         7: .line 75
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
            putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.temp:Ljdk/vm/ci/meta/AllocatableValue;
         8: .line 77
      StackMap locals:
      StackMap stack:
            return
        end local 4 // jdk.vm.ci.code.Register thread
        end local 3 // org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool tool
        end local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 1 // org.graalvm.compiler.lir.LIRFrameState state
        end local 0 // org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotSafepointOp;
            0    9     1   state  Lorg/graalvm/compiler/lir/LIRFrameState;
            0    9     2  config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    9     3    tool  Lorg/graalvm/compiler/nodes/spi/NodeLIRBuilderTool;
            0    9     4  thread  Ljdk/vm/ci/code/Register;
    MethodParameters:
        Name  Flags
      state   
      config  
      tool    
      thread  

  public void emitCode(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp this
        start local 1 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        start local 2 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler asm
         0: .line 81
            aload 1 /* crb */
            aload 2 /* asm */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            iconst_0
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.state:Lorg/graalvm/compiler/lir/LIRFrameState;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.thread:Ljdk/vm/ci/code/Register;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.temp:Ljdk/vm/ci/meta/AllocatableValue;
            instanceof jdk.vm.ci.code.RegisterValue
            ifeq 1
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.temp:Ljdk/vm/ci/meta/AllocatableValue;
            checkcast jdk.vm.ci.code.RegisterValue
            invokevirtual jdk.vm.ci.code.RegisterValue.getRegister:()Ljdk/vm/ci/code/Register;
            goto 2
      StackMap locals: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.hotspot.GraalHotSpotVMConfig int org.graalvm.compiler.lir.LIRFrameState jdk.vm.ci.code.Register
         1: aconst_null
      StackMap locals: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.hotspot.GraalHotSpotVMConfig int org.graalvm.compiler.lir.LIRFrameState jdk.vm.ci.code.Register jdk.vm.ci.code.Register
         2: invokestatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.emitCode:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;ZLorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
         3: .line 82
            return
        end local 2 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler asm
        end local 1 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        end local 0 // org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotSafepointOp;
            0    4     1   crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            0    4     2   asm  Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
    MethodParameters:
      Name  Flags
      crb   
      asm   

  public static void emitCode(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, boolean, org.graalvm.compiler.lir.LIRFrameState, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;ZLorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        start local 1 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler asm
        start local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 3 // boolean atReturn
        start local 4 // org.graalvm.compiler.lir.LIRFrameState state
        start local 5 // jdk.vm.ci.code.Register thread
        start local 6 // jdk.vm.ci.code.Register scratch
         0: .line 85
            aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useThreadLocalPolling:Z
            ifeq 3
         1: .line 86
            aload 0 /* crb */
            aload 1 /* asm */
            aload 2 /* config */
            iload 3 /* atReturn */
            aload 4 /* state */
            aload 5 /* thread */
            aload 6 /* scratch */
            invokestatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.emitThreadLocalPoll:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;ZLorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
         2: .line 87
            goto 4
         3: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* crb */
            aload 1 /* asm */
            aload 2 /* config */
            iload 3 /* atReturn */
            aload 4 /* state */
            aload 6 /* scratch */
            invokestatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.emitGlobalPoll:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;ZLorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/code/Register;)V
         4: .line 90
      StackMap locals:
      StackMap stack:
            return
        end local 6 // jdk.vm.ci.code.Register scratch
        end local 5 // jdk.vm.ci.code.Register thread
        end local 4 // org.graalvm.compiler.lir.LIRFrameState state
        end local 3 // boolean atReturn
        end local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 1 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler asm
        end local 0 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0       crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            0    5     1       asm  Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
            0    5     2    config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    5     3  atReturn  Z
            0    5     4     state  Lorg/graalvm/compiler/lir/LIRFrameState;
            0    5     5    thread  Ljdk/vm/ci/code/Register;
            0    5     6   scratch  Ljdk/vm/ci/code/Register;
    MethodParameters:
          Name  Flags
      crb       
      asm       
      config    
      atReturn  
      state     
      thread    
      scratch   

  private static boolean isPollingPageFar(org.graalvm.compiler.hotspot.GraalHotSpotVMConfig);
    descriptor: (Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
         0: .line 97
            aload 0 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.safepointPollingAddress:J
            lstore 1 /* pollingPageAddress */
        start local 1 // long pollingPageAddress
         1: .line 98
            aload 0 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.forceUnreachable:Z
            ifne 2
            lload 1 /* pollingPageAddress */
            aload 0 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.codeCacheLowBound:J
            lsub
            invokestatic org.graalvm.compiler.core.common.NumUtil.isInt:(J)Z
            ifeq 2
            lload 1 /* pollingPageAddress */
            aload 0 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.codeCacheHighBound:J
            lsub
            invokestatic org.graalvm.compiler.core.common.NumUtil.isInt:(J)Z
            ifeq 2
            iconst_0
            ireturn
      StackMap locals: long
      StackMap stack:
         2: iconst_1
            ireturn
        end local 1 // long pollingPageAddress
        end local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0              config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            1    3     1  pollingPageAddress  J
    MethodParameters:
        Name  Flags
      config  

  private static void emitGlobalPoll(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, boolean, org.graalvm.compiler.lir.LIRFrameState, jdk.vm.ci.code.Register);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;ZLorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/code/Register;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=6
        start local 0 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        start local 1 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler asm
        start local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 3 // boolean atReturn
        start local 4 // org.graalvm.compiler.lir.LIRFrameState state
        start local 5 // jdk.vm.ci.code.Register scratch
         0: .line 102
            getstatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.$assertionsDisabled:Z
            ifne 1
            iload 3 /* atReturn */
            ifeq 1
            aload 4 /* state */
            ifnull 1
            new java.lang.AssertionError
            dup
            ldc "state is unneeded at return"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 103
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.common.GraalOptions.ImmutableCode:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* crb */
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 17
         2: .line 104
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            astore 6 /* hostWordKind */
        start local 6 // jdk.vm.ci.meta.JavaKind hostWordKind
         3: .line 105
            aload 6 /* hostWordKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            bipush 8
            idiv
            istore 7 /* alignment */
        start local 7 // int alignment
         4: .line 106
            aload 6 /* hostWordKind */
            aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.safepointPollingAddress:J
            invokestatic jdk.vm.ci.meta.JavaConstant.forIntegerKind:(Ljdk/vm/ci/meta/JavaKind;J)Ljdk/vm/ci/meta/PrimitiveConstant;
            astore 8 /* pollingPageAddress */
        start local 8 // jdk.vm.ci.meta.JavaConstant pollingPageAddress
         5: .line 109
            getstatic org.graalvm.compiler.core.common.GraalOptions.GeneratePIC:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* crb */
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 8
         6: .line 110
            aload 1 /* asm */
            aload 5 /* scratch */
            aload 1 /* asm */
            iconst_m1
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.getPlaceholder:(I)Lorg/graalvm/compiler/asm/amd64/AMD64Address;
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
         7: .line 111
            goto 9
         8: .line 112
      StackMap locals: jdk.vm.ci.meta.JavaKind int jdk.vm.ci.meta.JavaConstant
      StackMap stack:
            aload 1 /* asm */
            aload 5 /* scratch */
            aload 0 /* crb */
            aload 8 /* pollingPageAddress */
            iload 7 /* alignment */
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.recordDataReferenceInCode:(Ljdk/vm/ci/meta/Constant;I)Lorg/graalvm/compiler/asm/AbstractAddress;
            checkcast org.graalvm.compiler.asm.amd64.AMD64Address
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
         9: .line 114
      StackMap locals:
      StackMap stack:
            aload 1 /* asm */
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.position:()I
            istore 9 /* pos */
        start local 9 // int pos
        10: .line 115
            aload 0 /* crb */
            iload 3 /* atReturn */
            ifeq 11
            getstatic org.graalvm.compiler.hotspot.HotSpotMarkId.POLL_RETURN_FAR:Lorg/graalvm/compiler/hotspot/HotSpotMarkId;
            goto 12
      StackMap locals: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.hotspot.GraalHotSpotVMConfig int org.graalvm.compiler.lir.LIRFrameState jdk.vm.ci.code.Register jdk.vm.ci.meta.JavaKind int jdk.vm.ci.meta.JavaConstant int
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder
        11: getstatic org.graalvm.compiler.hotspot.HotSpotMarkId.POLL_FAR:Lorg/graalvm/compiler/hotspot/HotSpotMarkId;
      StackMap locals: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.hotspot.GraalHotSpotVMConfig int org.graalvm.compiler.lir.LIRFrameState jdk.vm.ci.code.Register jdk.vm.ci.meta.JavaKind int jdk.vm.ci.meta.JavaConstant int
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.hotspot.HotSpotMarkId
        12: invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.recordMark:(Lorg/graalvm/compiler/code/CompilationResult$MarkId;)Lorg/graalvm/compiler/code/CompilationResult$CodeMark;
            pop
        13: .line 116
            aload 4 /* state */
            ifnull 15
        14: .line 117
            aload 0 /* crb */
            iload 9 /* pos */
            aload 4 /* state */
            getstatic jdk.vm.ci.code.site.InfopointReason.SAFEPOINT:Ljdk/vm/ci/code/site/InfopointReason;
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.recordInfopoint:(ILorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/code/site/InfopointReason;)V
        15: .line 119
      StackMap locals:
      StackMap stack:
            aload 1 /* asm */
            getstatic jdk.vm.ci.amd64.AMD64.rax:Ljdk/vm/ci/code/Register;
            new org.graalvm.compiler.asm.amd64.AMD64Address
            dup
            aload 5 /* scratch */
            invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;)V
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.testl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
        end local 9 // int pos
        end local 8 // jdk.vm.ci.meta.JavaConstant pollingPageAddress
        end local 7 // int alignment
        end local 6 // jdk.vm.ci.meta.JavaKind hostWordKind
        16: .line 120
            goto 34
      StackMap locals: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.hotspot.GraalHotSpotVMConfig int org.graalvm.compiler.lir.LIRFrameState jdk.vm.ci.code.Register
      StackMap stack:
        17: aload 2 /* config */
            invokestatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.isPollingPageFar:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
            ifeq 27
        18: .line 121
            aload 1 /* asm */
            aload 5 /* scratch */
            aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.safepointPollingAddress:J
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movq:(Ljdk/vm/ci/code/Register;J)V
        19: .line 122
            aload 0 /* crb */
            iload 3 /* atReturn */
            ifeq 20
            getstatic org.graalvm.compiler.hotspot.HotSpotMarkId.POLL_RETURN_FAR:Lorg/graalvm/compiler/hotspot/HotSpotMarkId;
            goto 21
      StackMap locals:
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder
        20: getstatic org.graalvm.compiler.hotspot.HotSpotMarkId.POLL_FAR:Lorg/graalvm/compiler/hotspot/HotSpotMarkId;
      StackMap locals: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.hotspot.GraalHotSpotVMConfig int org.graalvm.compiler.lir.LIRFrameState jdk.vm.ci.code.Register
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.hotspot.HotSpotMarkId
        21: invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.recordMark:(Lorg/graalvm/compiler/code/CompilationResult$MarkId;)Lorg/graalvm/compiler/code/CompilationResult$CodeMark;
            pop
        22: .line 123
            aload 1 /* asm */
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.position:()I
            istore 6 /* pos */
        start local 6 // int pos
        23: .line 124
            aload 4 /* state */
            ifnull 25
        24: .line 125
            aload 0 /* crb */
            iload 6 /* pos */
            aload 4 /* state */
            getstatic jdk.vm.ci.code.site.InfopointReason.SAFEPOINT:Ljdk/vm/ci/code/site/InfopointReason;
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.recordInfopoint:(ILorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/code/site/InfopointReason;)V
        25: .line 127
      StackMap locals: int
      StackMap stack:
            aload 1 /* asm */
            getstatic jdk.vm.ci.amd64.AMD64.rax:Ljdk/vm/ci/code/Register;
            new org.graalvm.compiler.asm.amd64.AMD64Address
            dup
            aload 5 /* scratch */
            invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;)V
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.testl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
        end local 6 // int pos
        26: .line 128
            goto 34
        27: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* crb */
            iload 3 /* atReturn */
            ifeq 28
            getstatic org.graalvm.compiler.hotspot.HotSpotMarkId.POLL_RETURN_NEAR:Lorg/graalvm/compiler/hotspot/HotSpotMarkId;
            goto 29
      StackMap locals:
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder
        28: getstatic org.graalvm.compiler.hotspot.HotSpotMarkId.POLL_NEAR:Lorg/graalvm/compiler/hotspot/HotSpotMarkId;
      StackMap locals: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.hotspot.GraalHotSpotVMConfig int org.graalvm.compiler.lir.LIRFrameState jdk.vm.ci.code.Register
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.hotspot.HotSpotMarkId
        29: invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.recordMark:(Lorg/graalvm/compiler/code/CompilationResult$MarkId;)Lorg/graalvm/compiler/code/CompilationResult$CodeMark;
            pop
        30: .line 130
            aload 1 /* asm */
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.position:()I
            istore 6 /* pos */
        start local 6 // int pos
        31: .line 131
            aload 4 /* state */
            ifnull 33
        32: .line 132
            aload 0 /* crb */
            iload 6 /* pos */
            aload 4 /* state */
            getstatic jdk.vm.ci.code.site.InfopointReason.SAFEPOINT:Ljdk/vm/ci/code/site/InfopointReason;
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.recordInfopoint:(ILorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/code/site/InfopointReason;)V
        33: .line 136
      StackMap locals: int
      StackMap stack:
            aload 1 /* asm */
            getstatic jdk.vm.ci.amd64.AMD64.rax:Ljdk/vm/ci/code/Register;
            new org.graalvm.compiler.asm.amd64.AMD64Address
            dup
            getstatic jdk.vm.ci.amd64.AMD64.rip:Ljdk/vm/ci/code/Register;
            iconst_0
            invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.testl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
        end local 6 // int pos
        34: .line 138
      StackMap locals:
      StackMap stack:
            return
        end local 5 // jdk.vm.ci.code.Register scratch
        end local 4 // org.graalvm.compiler.lir.LIRFrameState state
        end local 3 // boolean atReturn
        end local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 1 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler asm
        end local 0 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   35     0                 crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            0   35     1                 asm  Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
            0   35     2              config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0   35     3            atReturn  Z
            0   35     4               state  Lorg/graalvm/compiler/lir/LIRFrameState;
            0   35     5             scratch  Ljdk/vm/ci/code/Register;
            3   16     6        hostWordKind  Ljdk/vm/ci/meta/JavaKind;
            4   16     7           alignment  I
            5   16     8  pollingPageAddress  Ljdk/vm/ci/meta/JavaConstant;
           10   16     9                 pos  I
           23   26     6                 pos  I
           31   34     6                 pos  I
    MethodParameters:
          Name  Flags
      crb       
      asm       
      config    
      atReturn  
      state     
      scratch   

  private static void emitThreadLocalPoll(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, boolean, org.graalvm.compiler.lir.LIRFrameState, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;ZLorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=7
        start local 0 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        start local 1 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler asm
        start local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 3 // boolean atReturn
        start local 4 // org.graalvm.compiler.lir.LIRFrameState state
        start local 5 // jdk.vm.ci.code.Register thread
        start local 6 // jdk.vm.ci.code.Register scratch
         0: .line 142
            getstatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.$assertionsDisabled:Z
            ifne 1
            iload 3 /* atReturn */
            ifeq 1
            aload 4 /* state */
            ifnull 1
            new java.lang.AssertionError
            dup
            ldc "state is unneeded at return"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 144
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotSafepointOp.$assertionsDisabled:Z
            ifne 2
            aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.threadPollingPageOffset:I
            ifge 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 145
      StackMap locals:
      StackMap stack:
            aload 1 /* asm */
            aload 6 /* scratch */
            new org.graalvm.compiler.asm.amd64.AMD64Address
            dup
            aload 5 /* thread */
            aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.threadPollingPageOffset:I
            invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movptr:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
         3: .line 146
            aload 0 /* crb */
            iload 3 /* atReturn */
            ifeq 4
            getstatic org.graalvm.compiler.hotspot.HotSpotMarkId.POLL_RETURN_FAR:Lorg/graalvm/compiler/hotspot/HotSpotMarkId;
            goto 5
      StackMap locals:
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder
         4: getstatic org.graalvm.compiler.hotspot.HotSpotMarkId.POLL_FAR:Lorg/graalvm/compiler/hotspot/HotSpotMarkId;
      StackMap locals: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.hotspot.GraalHotSpotVMConfig int org.graalvm.compiler.lir.LIRFrameState jdk.vm.ci.code.Register jdk.vm.ci.code.Register
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.hotspot.HotSpotMarkId
         5: invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.recordMark:(Lorg/graalvm/compiler/code/CompilationResult$MarkId;)Lorg/graalvm/compiler/code/CompilationResult$CodeMark;
            pop
         6: .line 147
            aload 1 /* asm */
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.position:()I
            istore 7 /* pos */
        start local 7 // int pos
         7: .line 148
            aload 4 /* state */
            ifnull 9
         8: .line 149
            aload 0 /* crb */
            iload 7 /* pos */
            aload 4 /* state */
            getstatic jdk.vm.ci.code.site.InfopointReason.SAFEPOINT:Ljdk/vm/ci/code/site/InfopointReason;
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.recordInfopoint:(ILorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/code/site/InfopointReason;)V
         9: .line 151
      StackMap locals: int
      StackMap stack:
            aload 1 /* asm */
            getstatic jdk.vm.ci.amd64.AMD64.rax:Ljdk/vm/ci/code/Register;
            new org.graalvm.compiler.asm.amd64.AMD64Address
            dup
            aload 6 /* scratch */
            invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;)V
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.testl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
        10: .line 152
            return
        end local 7 // int pos
        end local 6 // jdk.vm.ci.code.Register scratch
        end local 5 // jdk.vm.ci.code.Register thread
        end local 4 // org.graalvm.compiler.lir.LIRFrameState state
        end local 3 // boolean atReturn
        end local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 1 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler asm
        end local 0 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0       crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            0   11     1       asm  Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
            0   11     2    config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0   11     3  atReturn  Z
            0   11     4     state  Lorg/graalvm/compiler/lir/LIRFrameState;
            0   11     5    thread  Ljdk/vm/ci/code/Register;
            0   11     6   scratch  Ljdk/vm/ci/code/Register;
            7   11     7       pos  I
    MethodParameters:
          Name  Flags
      crb       
      asm       
      config    
      atReturn  
      state     
      thread    
      scratch   
}
SourceFile: "AMD64HotSpotSafepointOp.java"
InnerClasses:
  public CodeMark = org.graalvm.compiler.code.CompilationResult$CodeMark of org.graalvm.compiler.code.CompilationResult
  public abstract MarkId = org.graalvm.compiler.code.CompilationResult$MarkId of org.graalvm.compiler.code.CompilationResult
  public final OperandFlag = org.graalvm.compiler.lir.LIRInstruction$OperandFlag of org.graalvm.compiler.lir.LIRInstruction
  public abstract State = org.graalvm.compiler.lir.LIRInstruction$State of org.graalvm.compiler.lir.LIRInstruction
  public abstract Temp = org.graalvm.compiler.lir.LIRInstruction$Temp of org.graalvm.compiler.lir.LIRInstruction
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.lir.Opcode(value = "SAFEPOINT")