public class org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp extends org.graalvm.compiler.lir.aarch64.AArch64LIRInstruction
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp
  super_class: org.graalvm.compiler.lir.aarch64.AArch64LIRInstruction
{
  public static final org.graalvm.compiler.lir.LIRInstructionClass<org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp> 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/aarch64/AArch64HotSpotSafepointOp;>;

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

  protected jdk.vm.ci.meta.AllocatableValue scratchValue;
    descriptor: Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.lir.LIRInstruction$Temp()

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 47
            ldc Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotSafepointOp;
            invokestatic org.graalvm.compiler.lir.LIRInstructionClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/lir/LIRInstructionClass;
            putstatic org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp.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, jdk.vm.ci.meta.AllocatableValue);
    descriptor: (Lorg/graalvm/compiler/lir/LIRFrameState;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljdk/vm/ci/meta/AllocatableValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp this
        start local 1 // org.graalvm.compiler.lir.LIRFrameState state
        start local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 3 // jdk.vm.ci.meta.AllocatableValue scratch
         0: .line 55
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp.TYPE:Lorg/graalvm/compiler/lir/LIRInstructionClass;
            invokespecial org.graalvm.compiler.lir.aarch64.AArch64LIRInstruction.<init>:(Lorg/graalvm/compiler/lir/LIRInstructionClass;)V
         1: .line 56
            aload 0 /* this */
            aload 1 /* state */
            putfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp.state:Lorg/graalvm/compiler/lir/LIRFrameState;
         2: .line 57
            aload 0 /* this */
            aload 2 /* config */
            putfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
         3: .line 58
            aload 0 /* this */
            aload 3 /* scratch */
            putfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp.scratchValue:Ljdk/vm/ci/meta/AllocatableValue;
         4: .line 59
            return
        end local 3 // jdk.vm.ci.meta.AllocatableValue scratch
        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.aarch64.AArch64HotSpotSafepointOp this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotSafepointOp;
            0    5     1    state  Lorg/graalvm/compiler/lir/LIRFrameState;
            0    5     2   config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    5     3  scratch  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
         Name  Flags
      state    
      config   
      scratch  

  public void emitCode(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp this
        start local 1 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        start local 2 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler masm
         0: .line 63
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp.scratchValue:Ljdk/vm/ci/meta/AllocatableValue;
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            astore 3 /* scratch */
        start local 3 // jdk.vm.ci.code.Register scratch
         1: .line 64
            aload 1 /* crb */
            aload 2 /* masm */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            iconst_0
            aload 3 /* scratch */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp.state:Lorg/graalvm/compiler/lir/LIRFrameState;
            invokestatic org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp.emitCode:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;ZLjdk/vm/ci/code/Register;Lorg/graalvm/compiler/lir/LIRFrameState;)V
         2: .line 65
            return
        end local 3 // jdk.vm.ci.code.Register scratch
        end local 2 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler masm
        end local 1 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        end local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotSafepointOp;
            0    3     1      crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            0    3     2     masm  Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;
            1    3     3  scratch  Ljdk/vm/ci/code/Register;
    MethodParameters:
      Name  Flags
      crb   
      masm  

  private static boolean isPollingPageFar(org.graalvm.compiler.hotspot.GraalHotSpotVMConfig);
    descriptor: (Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
         0: .line 75
            aload 0 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.safepointPollingAddress:J
            lstore 1 /* pollingPageAddress */
        start local 1 // long pollingPageAddress
         1: .line 76
            bipush 21
            lload 1 /* pollingPageAddress */
            aload 0 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.codeCacheLowBound:J
            lsub
            invokestatic org.graalvm.compiler.asm.NumUtil.isSignedNbit:(IJ)Z
            ifeq 2
            bipush 21
            lload 1 /* pollingPageAddress */
            aload 0 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.codeCacheHighBound:J
            lsub
            invokestatic org.graalvm.compiler.asm.NumUtil.isSignedNbit:(IJ)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  

  public static void emitCode(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler, org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, boolean, jdk.vm.ci.code.Register, org.graalvm.compiler.lir.LIRFrameState);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;ZLjdk/vm/ci/code/Register;Lorg/graalvm/compiler/lir/LIRFrameState;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=6
        start local 0 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        start local 1 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler masm
        start local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 3 // boolean onReturn
        start local 4 // jdk.vm.ci.code.Register scratch
        start local 5 // org.graalvm.compiler.lir.LIRFrameState state
         0: .line 80
            aload 1 /* masm */
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler.position:()I
            istore 6 /* pos */
        start local 6 // int pos
         1: .line 81
            aload 2 /* config */
            invokestatic org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp.isPollingPageFar:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
            ifeq 10
         2: .line 82
            aload 0 /* crb */
            iload 3 /* onReturn */
            ifeq 3
            aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.MARKID_POLL_RETURN_FAR:I
            goto 4
      StackMap locals: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler org.graalvm.compiler.hotspot.GraalHotSpotVMConfig int jdk.vm.ci.code.Register org.graalvm.compiler.lir.LIRFrameState int
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder
         3: aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.MARKID_POLL_FAR:I
      StackMap locals: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler org.graalvm.compiler.hotspot.GraalHotSpotVMConfig int jdk.vm.ci.code.Register org.graalvm.compiler.lir.LIRFrameState int
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder int
         4: invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.recordMark:(Ljava/lang/Object;)Ljdk/vm/ci/code/site/Mark;
            pop
         5: .line 83
            aload 1 /* masm */
            aload 4 /* scratch */
            aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.safepointPollingAddress:J
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler.movNativeAddress:(Ljdk/vm/ci/code/Register;J)V
         6: .line 84
            aload 5 /* state */
            ifnull 8
         7: .line 85
            aload 0 /* crb */
            iload 6 /* pos */
            aload 5 /* 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
         8: .line 87
      StackMap locals:
      StackMap stack:
            aload 1 /* masm */
            bipush 32
            getstatic jdk.vm.ci.aarch64.AArch64.zr:Ljdk/vm/ci/code/Register;
            aload 4 /* scratch */
            invokestatic org.graalvm.compiler.asm.aarch64.AArch64Address.createBaseRegisterOnlyAddress:(Ljdk/vm/ci/code/Register;)Lorg/graalvm/compiler/asm/aarch64/AArch64Address;
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler.ldr:(ILjdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/aarch64/AArch64Address;)V
         9: .line 88
            goto 16
        10: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* crb */
            iload 3 /* onReturn */
            ifeq 11
            aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.MARKID_POLL_RETURN_NEAR:I
            goto 12
      StackMap locals:
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder
        11: aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.MARKID_POLL_NEAR:I
      StackMap locals: org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler org.graalvm.compiler.hotspot.GraalHotSpotVMConfig int jdk.vm.ci.code.Register org.graalvm.compiler.lir.LIRFrameState int
      StackMap stack: org.graalvm.compiler.lir.asm.CompilationResultBuilder int
        12: invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.recordMark:(Ljava/lang/Object;)Ljdk/vm/ci/code/site/Mark;
            pop
        13: .line 90
            aload 5 /* state */
            ifnull 15
        14: .line 91
            aload 0 /* crb */
            iload 6 /* pos */
            aload 5 /* 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 93
      StackMap locals:
      StackMap stack:
            aload 1 /* masm */
            bipush 32
            getstatic jdk.vm.ci.aarch64.AArch64.zr:Ljdk/vm/ci/code/Register;
            iconst_0
            invokestatic org.graalvm.compiler.asm.aarch64.AArch64Address.createPcLiteralAddress:(I)Lorg/graalvm/compiler/asm/aarch64/AArch64Address;
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler.ldr:(ILjdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/aarch64/AArch64Address;)V
        16: .line 95
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int pos
        end local 5 // org.graalvm.compiler.lir.LIRFrameState state
        end local 4 // jdk.vm.ci.code.Register scratch
        end local 3 // boolean onReturn
        end local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 1 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler masm
        end local 0 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0       crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            0   17     1      masm  Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;
            0   17     2    config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0   17     3  onReturn  Z
            0   17     4   scratch  Ljdk/vm/ci/code/Register;
            0   17     5     state  Lorg/graalvm/compiler/lir/LIRFrameState;
            1   17     6       pos  I
    MethodParameters:
          Name  Flags
      crb       
      masm      
      config    
      onReturn  
      scratch   
      state     
}
SourceFile: "AArch64HotSpotSafepointOp.java"
InnerClasses:
  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")