public class org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatcherUtil
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatcherUtil
super_class: java.lang.Object
{
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 3063
ldc Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler;
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.asm.aarch64.AArch64Assembler$PatcherUtil.$assertionsDisabled:Z
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.asm.aarch64.AArch64Assembler$PatcherUtil this
0: .line 3063
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatcherUtil this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$PatcherUtil;
public static void writeBitSequence(byte[], int, int, int[], int[]);
descriptor: ([BII[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=13, args_size=5
start local 0 // byte[] code
start local 1 // int codePos
start local 2 // int value
start local 3 // int[] bitsUsed
start local 4 // int[] offsets
0: .line 3074
getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatcherUtil.$assertionsDisabled:Z
ifne 1
aload 3 /* bitsUsed */
arraylength
aload 4 /* offsets */
arraylength
if_icmpeq 1
new java.lang.AssertionError
dup
ldc "bitsUsed and offsets parameter arrays do not match"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: .line 3075
StackMap locals:
StackMap stack:
iload 2 /* value */
istore 5 /* curValue */
start local 5 // int curValue
2: .line 3076
iconst_0
istore 6 /* i */
start local 6 // int i
3: goto 16
4: .line 3077
StackMap locals: int int
StackMap stack:
aload 3 /* bitsUsed */
iload 6 /* i */
iaload
istore 7 /* usedBits */
start local 7 // int usedBits
5: .line 3078
iload 7 /* usedBits */
ifne 7
6: .line 3079
goto 15
7: .line 3082
StackMap locals: int
StackMap stack:
aload 4 /* offsets */
iload 6 /* i */
iaload
istore 8 /* offset */
start local 8 // int offset
8: .line 3083
iconst_1
iload 7 /* usedBits */
ishl
iconst_1
isub
istore 9 /* mask */
start local 9 // int mask
9: .line 3085
aload 0 /* code */
iload 1 /* codePos */
iload 6 /* i */
iadd
baload
istore 10 /* patchTarget */
start local 10 // byte patchTarget
10: .line 3086
iload 5 /* curValue */
iload 9 /* mask */
iand
iload 8 /* offset */
ishl
sipush 255
iand
i2b
istore 11 /* patch */
start local 11 // byte patch
11: .line 3087
iload 10 /* patchTarget */
iload 9 /* mask */
iload 8 /* offset */
ishl
iconst_m1
ixor
sipush 255
iand
iand
i2b
istore 12 /* retainedPatchTarget */
start local 12 // byte retainedPatchTarget
12: .line 3088
iload 12 /* retainedPatchTarget */
iload 11 /* patch */
ior
i2b
istore 10 /* patchTarget */
13: .line 3089
aload 0 /* code */
iload 1 /* codePos */
iload 6 /* i */
iadd
iload 10 /* patchTarget */
bastore
14: .line 3090
iload 5 /* curValue */
iload 7 /* usedBits */
ishr
istore 5 /* curValue */
end local 12 // byte retainedPatchTarget
end local 11 // byte patch
end local 10 // byte patchTarget
end local 9 // int mask
end local 8 // int offset
end local 7 // int usedBits
15: .line 3076
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
16: iload 6 /* i */
aload 3 /* bitsUsed */
arraylength
if_icmplt 4
end local 6 // int i
17: .line 3092
return
end local 5 // int curValue
end local 4 // int[] offsets
end local 3 // int[] bitsUsed
end local 2 // int value
end local 1 // int codePos
end local 0 // byte[] code
LocalVariableTable:
Start End Slot Name Signature
0 18 0 code [B
0 18 1 codePos I
0 18 2 value I
0 18 3 bitsUsed [I
0 18 4 offsets [I
2 18 5 curValue I
3 17 6 i I
5 15 7 usedBits I
8 15 8 offset I
9 15 9 mask I
10 15 10 patchTarget B
11 15 11 patch B
12 15 12 retainedPatchTarget B
MethodParameters:
Name Flags
code
codePos
value
bitsUsed
offsets
public static int computeRelativePageDifference(int, int, int);
descriptor: (III)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 // int target
start local 1 // int curPos
start local 2 // int pageSize
0: .line 3095
iload 0 /* target */
iload 2 /* pageSize */
idiv
iload 1 /* curPos */
iload 2 /* pageSize */
idiv
isub
istore 3 /* relative */
start local 3 // int relative
1: .line 3096
iload 3 /* relative */
ireturn
end local 3 // int relative
end local 2 // int pageSize
end local 1 // int curPos
end local 0 // int target
LocalVariableTable:
Start End Slot Name Signature
0 2 0 target I
0 2 1 curPos I
0 2 2 pageSize I
1 2 3 relative I
MethodParameters:
Name Flags
target
curPos
pageSize
}
SourceFile: "AArch64Assembler.java"
NestHost: org.graalvm.compiler.asm.aarch64.AArch64Assembler
InnerClasses:
public PatcherUtil = org.graalvm.compiler.asm.aarch64.AArch64Assembler$PatcherUtil of org.graalvm.compiler.asm.aarch64.AArch64Assembler