public class org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$AdrpAddMacroInstruction extends org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatchableCodeAnnotation
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$AdrpAddMacroInstruction
  super_class: org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatchableCodeAnnotation
{
  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$AdrpAddMacroInstruction this
        start local 1 // int position
         0: .line 2373
            aload 0 /* this */
            iload 1 /* position */
            invokespecial org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatchableCodeAnnotation.<init>:(I)V
         1: .line 2374
            return
        end local 1 // int position
        end local 0 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$AdrpAddMacroInstruction this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler$AdrpAddMacroInstruction;
            0    2     1  position  I
    MethodParameters:
          Name  Flags
      position  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$AdrpAddMacroInstruction this
         0: .line 2378
            ldc "ADRP_ADD"
            areturn
        end local 0 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$AdrpAddMacroInstruction this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler$AdrpAddMacroInstruction;

  public void patch(int, int, byte[]);
    descriptor: (II[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=14, args_size=4
        start local 0 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$AdrpAddMacroInstruction this
        start local 1 // int codePos
        start local 2 // int relative
        start local 3 // byte[] code
         0: .line 2383
            aload 0 /* this */
            getfield org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$AdrpAddMacroInstruction.instructionPosition:I
            istore 4 /* pos */
        start local 4 // int pos
         1: .line 2384
            iload 4 /* pos */
            iload 2 /* relative */
            iadd
            istore 5 /* targetAddress */
        start local 5 // int targetAddress
         2: .line 2385
            iload 5 /* targetAddress */
            iload 4 /* pos */
            sipush 4096
            invokestatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatcherUtil.computeRelativePageDifference:(III)I
            istore 6 /* relativePageDifference */
        start local 6 // int relativePageDifference
         3: .line 2387
            iload 6 /* relativePageDifference */
            iconst_2
            ishr
            ldc 524287
            iand
            istore 7 /* curValue */
        start local 7 // int curValue
         4: .line 2388
            iconst_3
            newarray 10
            dup
            iconst_0
            iconst_3
            iastore
            dup
            iconst_1
            bipush 8
            iastore
            dup
            iconst_2
            bipush 8
            iastore
            astore 8 /* adrHiBits */
        start local 8 // int[] adrHiBits
         5: .line 2389
            iconst_3
            newarray 10
            dup
            iconst_0
            iconst_5
            iastore
            astore 9 /* adrHiOffsets */
        start local 9 // int[] adrHiOffsets
         6: .line 2390
            aload 3 /* code */
            iload 4 /* pos */
            iload 7 /* curValue */
            aload 8 /* adrHiBits */
            aload 9 /* adrHiOffsets */
            invokestatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatcherUtil.writeBitSequence:([BII[I[I)V
         7: .line 2392
            iload 6 /* relativePageDifference */
            iconst_3
            iand
            istore 7 /* curValue */
         8: .line 2393
            iconst_1
            newarray 10
            dup
            iconst_0
            iconst_2
            iastore
            astore 10 /* adrLoBits */
        start local 10 // int[] adrLoBits
         9: .line 2394
            iconst_1
            newarray 10
            dup
            iconst_0
            iconst_5
            iastore
            astore 11 /* adrLoOffsets */
        start local 11 // int[] adrLoOffsets
        10: .line 2395
            aload 3 /* code */
            iload 4 /* pos */
            iconst_3
            iadd
            iload 7 /* curValue */
            aload 10 /* adrLoBits */
            aload 11 /* adrLoOffsets */
            invokestatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatcherUtil.writeBitSequence:([BII[I[I)V
        11: .line 2397
            iload 5 /* targetAddress */
            sipush 4095
            iand
            istore 7 /* curValue */
        12: .line 2398
            iconst_2
            newarray 10
            dup
            iconst_0
            bipush 6
            iastore
            dup
            iconst_1
            bipush 6
            iastore
            astore 12 /* addBits */
        start local 12 // int[] addBits
        13: .line 2399
            iconst_2
            newarray 10
            dup
            iconst_0
            iconst_2
            iastore
            astore 13 /* addOffsets */
        start local 13 // int[] addOffsets
        14: .line 2400
            aload 3 /* code */
            iload 4 /* pos */
            iconst_5
            iadd
            iload 7 /* curValue */
            aload 12 /* addBits */
            aload 13 /* addOffsets */
            invokestatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatcherUtil.writeBitSequence:([BII[I[I)V
        15: .line 2401
            return
        end local 13 // int[] addOffsets
        end local 12 // int[] addBits
        end local 11 // int[] adrLoOffsets
        end local 10 // int[] adrLoBits
        end local 9 // int[] adrHiOffsets
        end local 8 // int[] adrHiBits
        end local 7 // int curValue
        end local 6 // int relativePageDifference
        end local 5 // int targetAddress
        end local 4 // int pos
        end local 3 // byte[] code
        end local 2 // int relative
        end local 1 // int codePos
        end local 0 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$AdrpAddMacroInstruction this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   16     0                    this  Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler$AdrpAddMacroInstruction;
            0   16     1                 codePos  I
            0   16     2                relative  I
            0   16     3                    code  [B
            1   16     4                     pos  I
            2   16     5           targetAddress  I
            3   16     6  relativePageDifference  I
            4   16     7                curValue  I
            5   16     8               adrHiBits  [I
            6   16     9            adrHiOffsets  [I
            9   16    10               adrLoBits  [I
           10   16    11            adrLoOffsets  [I
           13   16    12                 addBits  [I
           14   16    13              addOffsets  [I
    MethodParameters:
          Name  Flags
      codePos   
      relative  
      code      
}
SourceFile: "AArch64MacroAssembler.java"
NestHost: org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler
InnerClasses:
  public abstract PatchableCodeAnnotation = org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatchableCodeAnnotation of org.graalvm.compiler.asm.aarch64.AArch64Assembler
  public PatcherUtil = org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatcherUtil of org.graalvm.compiler.asm.aarch64.AArch64Assembler
  public AdrpAddMacroInstruction = org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$AdrpAddMacroInstruction of org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler