public class org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable
super_class: java.lang.Object
{
private static final org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate[] IMMEDIATE_TABLE;
descriptor: [Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int ImmediateOffset;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10
private static final int ImmediateRotateOffset;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int ImmediateSizeOffset;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 22
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: 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$LogicalImmediateTable.$assertionsDisabled:Z
3: invokestatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.buildImmediateTable:()[Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
putstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.IMMEDIATE_TABLE:[Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
4: 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 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable;
public static org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Representable isRepresentable(boolean, long);
descriptor: (ZJ)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Representable;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: iload 0
lload 1
invokestatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.getLogicalImmTablePos:(ZJ)I
istore 3
start local 3 1: iload 3
ifge 9
2: iload 0
ifne 8
3: getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.$assertionsDisabled:Z
ifne 4
bipush 32
lload 1
invokestatic org.graalvm.compiler.asm.NumUtil.isUnsignedNbit:(IJ)Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: int
StackMap stack:
iconst_1
lload 1
invokestatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.getLogicalImmTablePos:(ZJ)I
istore 3
5: iload 3
iflt 6
getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Representable.SIXTY_FOUR_BIT_ONLY:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Representable;
goto 7
StackMap locals:
StackMap stack:
6: getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Representable.NO:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Representable;
StackMap locals:
StackMap stack: org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Representable
7: areturn
8: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Representable.NO:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Representable;
areturn
9: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.IMMEDIATE_TABLE:[Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
iload 3
aaload
astore 4
start local 4 10: aload 4
invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate.only64bit:()Z
ifeq 11
getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Representable.SIXTY_FOUR_BIT_ONLY:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Representable;
goto 12
StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate
StackMap stack:
11: getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Representable.YES:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Representable;
StackMap locals:
StackMap stack: org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Representable
12: areturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 is64bit Z
0 13 1 immediate J
1 13 3 pos I
10 13 4 imm Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
MethodParameters:
Name Flags
is64bit
immediate
public static org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Representable isRepresentable(int);
descriptor: (I)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Representable;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: iconst_0
iload 0
i2l
ldc 4294967295
land
invokestatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.isRepresentable:(ZJ)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Representable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 immediate I
MethodParameters:
Name Flags
immediate
public static int getLogicalImmEncoding(boolean, long);
descriptor: (ZJ)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: iload 0
lload 1
invokestatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.getLogicalImmTablePos:(ZJ)I
istore 3
start local 3 1: getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.$assertionsDisabled:Z
ifne 2
iload 3
ifge 2
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Value cannot be represented as logical immediate: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ", is64bit="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 0
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: int
StackMap stack:
getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.IMMEDIATE_TABLE:[Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
iload 3
aaload
astore 4
start local 4 3: getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.$assertionsDisabled:Z
ifne 4
iload 0
ifne 4
aload 4
invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate.only64bit:()Z
ifeq 4
new java.lang.AssertionError
dup
ldc "Immediate can only be represented for 64bit, but 32bit instruction specified"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate
StackMap stack:
getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.IMMEDIATE_TABLE:[Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
iload 3
aaload
getfield org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate.encoding:I
ireturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 is64bit Z
0 5 1 value J
1 5 3 pos I
3 5 4 imm Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
MethodParameters:
Name Flags
is64bit
value
private static int getLogicalImmTablePos(boolean, long);
descriptor: (ZJ)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: iload 0
ifne 5
1: bipush 32
lload 1
invokestatic org.graalvm.compiler.asm.NumUtil.isUnsignedNbit:(IJ)Z
ifne 3
2: iconst_m1
ireturn
3: StackMap locals:
StackMap stack:
new org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate
dup
lload 1
bipush 32
lshl
lload 1
lor
invokespecial org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate.<init>:(J)V
astore 3
start local 3 4: goto 6
end local 3 5: StackMap locals:
StackMap stack:
new org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate
dup
lload 1
invokespecial org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate.<init>:(J)V
astore 3
start local 3 6: StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate
StackMap stack:
getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.IMMEDIATE_TABLE:[Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
aload 3
invokestatic java.util.Arrays.binarySearch:([Ljava/lang/Object;Ljava/lang/Object;)I
istore 4
start local 4 7: iload 4
ifge 9
8: iconst_m1
ireturn
9: StackMap locals: int
StackMap stack:
iload 0
ifne 11
getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.IMMEDIATE_TABLE:[Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
iload 4
aaload
invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate.only64bit:()Z
ifeq 11
10: iconst_m1
ireturn
11: StackMap locals:
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 is64bit Z
0 12 1 value J
4 5 3 imm Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
6 12 3 imm Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
7 12 4 pos I
MethodParameters:
Name Flags
is64bit
value
private static org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate[] buildImmediateTable();
descriptor: ()[Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=14, args_size=0
0: sipush 5334
anewarray org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate
astore 0
start local 0 1: iconst_0
istore 1
start local 1 2: iconst_1
istore 2
start local 2 3: goto 43
4: StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate[] int int
StackMap stack:
iconst_1
iload 2
ishl
istore 3
start local 3 5: iload 3
invokestatic org.graalvm.compiler.asm.NumUtil.getNbitNumberLong:(I)J
lstore 4
start local 4 6: iconst_1
istore 6
start local 6 7: goto 41
8: StackMap locals: int long int
StackMap stack:
lconst_1
iload 6
lshl
lconst_1
lsub
lstore 7
start local 7 9: iconst_0
istore 9
start local 9 10: goto 39
11: StackMap locals: long int
StackMap stack:
lload 7
iload 9
lushr
lload 7
iload 3
iload 9
isub
lshl
lor
lload 4
land
lstore 10
start local 10 12: iload 2
tableswitch { // 1 - 5
1: 13
2: 19
3: 24
4: 28
5: 31
default: 32
}
13: StackMap locals: long
StackMap stack:
lload 10
lload 10
iconst_2
lshl
lor
lstore 10
14: lload 10
lload 10
iconst_4
lshl
lor
lstore 10
15: lload 10
lload 10
bipush 8
lshl
lor
lstore 10
16: lload 10
lload 10
bipush 16
lshl
lor
lstore 10
17: lload 10
lload 10
bipush 32
lshl
lor
lstore 10
18: goto 32
19: StackMap locals:
StackMap stack:
lload 10
lload 10
iconst_4
lshl
lor
lstore 10
20: lload 10
lload 10
bipush 8
lshl
lor
lstore 10
21: lload 10
lload 10
bipush 16
lshl
lor
lstore 10
22: lload 10
lload 10
bipush 32
lshl
lor
lstore 10
23: goto 32
24: StackMap locals:
StackMap stack:
lload 10
lload 10
bipush 8
lshl
lor
lstore 10
25: lload 10
lload 10
bipush 16
lshl
lor
lstore 10
26: lload 10
lload 10
bipush 32
lshl
lor
lstore 10
27: goto 32
28: StackMap locals:
StackMap stack:
lload 10
lload 10
bipush 16
lshl
lor
lstore 10
29: lload 10
lload 10
bipush 32
lshl
lor
lstore 10
30: goto 32
31: StackMap locals:
StackMap stack:
lload 10
lload 10
bipush 32
lshl
lor
lstore 10
32: StackMap locals:
StackMap stack:
iconst_1
iconst_5
iload 2
isub
ishl
iconst_1
isub
istore 12
start local 12 33: iload 12
iload 2
iconst_1
iadd
ishl
bipush 63
iand
iload 6
iconst_1
isub
ior
istore 13
start local 13 34: aload 0
iload 1
iinc 1 1
35: new org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate
dup
lload 10
iload 3
bipush 64
if_icmpne 36
iconst_1
goto 37
StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate[] int int int long int long int long int int
StackMap stack: org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate[] int new 35 new 35 long
36: iconst_0
StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate[] int int int long int long int long int int
StackMap stack: org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate[] int new 35 new 35 long int
37: iload 13
iload 9
invokespecial org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate.<init>:(JZII)V
aastore
end local 13 end local 12 end local 10 38: iinc 9 1
StackMap locals:
StackMap stack:
39: iload 9
iload 3
if_icmplt 11
end local 9 end local 7 40: iinc 6 1
StackMap locals:
StackMap stack:
41: iload 6
iload 3
if_icmplt 8
end local 6 end local 4 end local 3 42: iinc 2 1
StackMap locals:
StackMap stack:
43: iload 2
bipush 6
if_icmple 4
end local 2 44: aload 0
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
45: getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.$assertionsDisabled:Z
ifne 46
iload 1
sipush 5334
if_icmpeq 46
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
iload 1
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " instead of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
sipush 5334
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " in table."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
46: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.$assertionsDisabled:Z
ifne 47
aload 0
invokestatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable.checkDuplicates:([Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;)Z
ifne 47
new java.lang.AssertionError
dup
ldc "Duplicate values in table."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
47: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 48 0 table [Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
2 48 1 nrImms I
3 44 2 logE I
5 42 3 e I
6 42 4 mask J
7 42 6 nrOnes I
9 40 7 val J
10 40 9 r I
12 38 10 immediate J
33 38 12 sizeEncoding I
34 38 13 s I
private static boolean checkDuplicates(org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate[]);
descriptor: ([Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 0
iload 1
aaload
getfield org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate.imm:J
aload 0
iload 1
iconst_1
iadd
aaload
getfield org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate.imm:J
lcmp
iflt 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
5: iload 1
aload 0
arraylength
iconst_1
isub
if_icmplt 2
end local 1 6: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 table [Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$LogicalImmediateTable$Immediate;
1 6 1 i I
MethodParameters:
Name Flags
table
}
SourceFile: "AArch64Assembler.java"
NestHost: org.graalvm.compiler.asm.aarch64.AArch64Assembler
InnerClasses:
public LogicalImmediateTable = org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable of org.graalvm.compiler.asm.aarch64.AArch64Assembler
private final Immediate = org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Immediate of org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable
final Representable = org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable$Representable of org.graalvm.compiler.asm.aarch64.AArch64Assembler$LogicalImmediateTable