public final class jdk.vm.ci.code.RegisterSaveLayout
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.vm.ci.code.RegisterSaveLayout
super_class: java.lang.Object
{
private final jdk.vm.ci.code.Register[] registers;
descriptor: [Ljdk/vm/ci/code/Register;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int[] slots;
descriptor: [I
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: ldc Ljdk/vm/ci/code/RegisterSaveLayout;
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 jdk.vm.ci.code.RegisterSaveLayout.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.vm.ci.code.Register[], int[]);
descriptor: ([Ljdk/vm/ci/code/Register;[I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: getstatic jdk.vm.ci.code.RegisterSaveLayout.$assertionsDisabled:Z
ifne 2
aload 1
arraylength
aload 2
arraylength
if_icmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: jdk.vm.ci.code.RegisterSaveLayout jdk.vm.ci.code.Register[] int[]
StackMap stack:
aload 0
aload 1
putfield jdk.vm.ci.code.RegisterSaveLayout.registers:[Ljdk/vm/ci/code/Register;
3: aload 0
aload 2
putfield jdk.vm.ci.code.RegisterSaveLayout.slots:[I
4: getstatic jdk.vm.ci.code.RegisterSaveLayout.$assertionsDisabled:Z
ifne 5
aload 0
iconst_0
invokevirtual jdk.vm.ci.code.RegisterSaveLayout.registersToSlots:(Z)Ljava/util/Map;
invokeinterface java.util.Map.size:()I
aload 1
arraylength
if_icmpeq 5
new java.lang.AssertionError
dup
ldc "non-unique registers"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.code.RegisterSaveLayout.$assertionsDisabled:Z
ifne 6
new java.util.HashSet
dup
aload 0
iconst_0
invokevirtual jdk.vm.ci.code.RegisterSaveLayout.registersToSlots:(Z)Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
invokevirtual java.util.HashSet.size:()I
aload 2
arraylength
if_icmpeq 6
new java.lang.AssertionError
dup
ldc "non-unqiue slots"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/vm/ci/code/RegisterSaveLayout;
0 7 1 registers [Ljdk/vm/ci/code/Register;
0 7 2 slots [I
RuntimeInvisibleAnnotations:
jdk.vm.ci.code.SuppressFBWarnings(value = {"EI_EXPOSE_REP2"}, justification = "caller transfers ownership of `registers` and `slots`")
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
jdk.vm.ci.code.SuppressFBWarnings(value = {"EI_EXPOSE_REP2"}, justification = "caller transfers ownership of `registers` and `slots`")
MethodParameters:
Name Flags
registers
slots
public int registerToSlot(jdk.vm.ci.code.Register);
descriptor: (Ljdk/vm/ci/code/Register;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 1
aload 0
getfield jdk.vm.ci.code.RegisterSaveLayout.registers:[Ljdk/vm/ci/code/Register;
iload 2
aaload
invokevirtual jdk.vm.ci.code.Register.equals:(Ljava/lang/Object;)Z
ifeq 4
3: aload 0
getfield jdk.vm.ci.code.RegisterSaveLayout.slots:[I
iload 2
iaload
ireturn
4: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
getfield jdk.vm.ci.code.RegisterSaveLayout.registers:[Ljdk/vm/ci/code/Register;
arraylength
if_icmplt 2
end local 2 6: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " not saved by this layout: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/vm/ci/code/RegisterSaveLayout;
0 7 1 register Ljdk/vm/ci/code/Register;
1 6 2 i I
MethodParameters:
Name Flags
register
public java.util.Map<jdk.vm.ci.code.Register, java.lang.Integer> registersToSlots(boolean);
descriptor: (Z)Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 1
ifeq 3
1: new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
astore 2
start local 2 2: goto 4
end local 2 3: StackMap locals:
StackMap stack:
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 4: StackMap locals: java.util.Map
StackMap stack:
iconst_0
istore 3
start local 3 5: goto 8
6: StackMap locals: int
StackMap stack:
aload 2
aload 0
getfield jdk.vm.ci.code.RegisterSaveLayout.registers:[Ljdk/vm/ci/code/Register;
iload 3
aaload
aload 0
getfield jdk.vm.ci.code.RegisterSaveLayout.slots:[I
iload 3
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
aload 0
getfield jdk.vm.ci.code.RegisterSaveLayout.registers:[Ljdk/vm/ci/code/Register;
arraylength
if_icmplt 6
end local 3 9: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/vm/ci/code/RegisterSaveLayout;
0 10 1 sorted Z
2 3 2 result Ljava/util/Map<Ljdk/vm/ci/code/Register;Ljava/lang/Integer;>;
4 10 2 result Ljava/util/Map<Ljdk/vm/ci/code/Register;Ljava/lang/Integer;>;
5 9 3 i I
Signature: (Z)Ljava/util/Map<Ljdk/vm/ci/code/Register;Ljava/lang/Integer;>;
MethodParameters:
Name Flags
sorted
public java.util.Map<java.lang.Integer, jdk.vm.ci.code.Register> slotsToRegisters(boolean);
descriptor: (Z)Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 1
ifeq 3
1: new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
astore 2
start local 2 2: goto 4
end local 2 3: StackMap locals:
StackMap stack:
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 4: StackMap locals: java.util.Map
StackMap stack:
iconst_0
istore 3
start local 3 5: goto 8
6: StackMap locals: int
StackMap stack:
aload 2
aload 0
getfield jdk.vm.ci.code.RegisterSaveLayout.slots:[I
iload 3
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 0
getfield jdk.vm.ci.code.RegisterSaveLayout.registers:[Ljdk/vm/ci/code/Register;
iload 3
aaload
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
aload 0
getfield jdk.vm.ci.code.RegisterSaveLayout.registers:[Ljdk/vm/ci/code/Register;
arraylength
if_icmplt 6
end local 3 9: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/vm/ci/code/RegisterSaveLayout;
0 10 1 sorted Z
2 3 2 result Ljava/util/Map<Ljava/lang/Integer;Ljdk/vm/ci/code/Register;>;
4 10 2 result Ljava/util/Map<Ljava/lang/Integer;Ljdk/vm/ci/code/Register;>;
5 9 3 i I
Signature: (Z)Ljava/util/Map<Ljava/lang/Integer;Ljdk/vm/ci/code/Register;>;
MethodParameters:
Name Flags
sorted
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/code/RegisterSaveLayout;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.vm.ci.code.RegisterSaveLayout
ifeq 6
3: aload 1
checkcast jdk.vm.ci.code.RegisterSaveLayout
astore 2
start local 2 4: aload 0
getfield jdk.vm.ci.code.RegisterSaveLayout.registers:[Ljdk/vm/ci/code/Register;
aload 2
getfield jdk.vm.ci.code.RegisterSaveLayout.registers:[Ljdk/vm/ci/code/Register;
invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
ifeq 6
aload 0
getfield jdk.vm.ci.code.RegisterSaveLayout.slots:[I
aload 2
getfield jdk.vm.ci.code.RegisterSaveLayout.slots:[I
invokestatic java.util.Arrays.equals:([I[I)Z
ifeq 6
5: iconst_1
ireturn
end local 2 6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/vm/ci/code/RegisterSaveLayout;
0 7 1 obj Ljava/lang/Object;
4 6 2 that Ljdk/vm/ci/code/RegisterSaveLayout;
MethodParameters:
Name Flags
obj
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual jdk.vm.ci.code.RegisterSaveLayout.registersToSlots:(Z)Ljava/util/Map;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/code/RegisterSaveLayout;
}
SourceFile: "RegisterSaveLayout.java"