public class jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig implements jdk.vm.ci.code.RegisterConfig
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig
super_class: java.lang.Object
{
private final jdk.vm.ci.code.TargetDescription target;
descriptor: Ljdk/vm/ci/code/TargetDescription;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray allocatable;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterAttributes[] attributesMap;
descriptor: [Ljdk/vm/ci/code/RegisterAttributes;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray cpuCallerParameterRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray cpuCalleeParameterRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray fpuFloatJavaParameterRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray fpuDoubleJavaParameterRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray fpuFloatNativeParameterRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray fpuDoubleNativeParameterRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray callerSaveRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray windowSaveRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final jdk.vm.ci.code.RegisterArray reservedRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: ldc Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
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.hotspot.sparc.SPARCHotSpotRegisterConfig.$assertionsDisabled:Z
3: new jdk.vm.ci.code.RegisterArray
dup
iconst_3
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.sparc.SPARC.sp:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.sparc.SPARC.g0:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.sparc.SPARC.g2:Ljdk/vm/ci/code/Register;
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putstatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.reservedRegisters:Ljdk/vm/ci/code/RegisterArray;
return
LocalVariableTable:
Start End Slot Name Signature
public jdk.vm.ci.code.RegisterArray getAllocatableRegisters();
descriptor: ()Ljdk/vm/ci/code/RegisterArray;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.allocatable:Ljdk/vm/ci/code/RegisterArray;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
public jdk.vm.ci.code.RegisterArray filterAllocatableRegisters(jdk.vm.ci.meta.PlatformKind, jdk.vm.ci.code.RegisterArray);
descriptor: (Ljdk/vm/ci/meta/PlatformKind;Ljdk/vm/ci/code/RegisterArray;)Ljdk/vm/ci/code/RegisterArray;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 2
invokevirtual jdk.vm.ci.code.RegisterArray.iterator:()Ljava/util/Iterator;
astore 5
goto 5
StackMap locals: jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig jdk.vm.ci.meta.PlatformKind jdk.vm.ci.code.RegisterArray java.util.ArrayList top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.code.Register
astore 4
start local 4 3: aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.target:Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
aload 4
invokevirtual jdk.vm.ci.code.Register.getRegisterCategory:()Ljdk/vm/ci/code/Register$RegisterCategory;
aload 1
invokevirtual jdk.vm.ci.code.Architecture.canStoreValue:(Ljdk/vm/ci/code/Register$RegisterCategory;Ljdk/vm/ci/meta/PlatformKind;)Z
ifeq 5
4: aload 3
aload 4
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 4 5: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: new jdk.vm.ci.code.RegisterArray
dup
aload 3
invokespecial jdk.vm.ci.code.RegisterArray.<init>:(Ljava/util/Collection;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
0 7 1 kind Ljdk/vm/ci/meta/PlatformKind;
0 7 2 registers Ljdk/vm/ci/code/RegisterArray;
1 7 3 list Ljava/util/ArrayList<Ljdk/vm/ci/code/Register;>;
3 5 4 reg Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
kind
registers
public jdk.vm.ci.code.RegisterAttributes[] getAttributesMap();
descriptor: ()[Ljdk/vm/ci/code/RegisterAttributes;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.attributesMap:[Ljdk/vm/ci/code/RegisterAttributes;
invokevirtual jdk.vm.ci.code.RegisterAttributes[].clone:()Ljava/lang/Object;
checkcast jdk.vm.ci.code.RegisterAttributes[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
private static jdk.vm.ci.code.RegisterArray initAllocatable(jdk.vm.ci.code.Architecture, boolean);
descriptor: (Ljdk/vm/ci/code/Architecture;Z)Ljdk/vm/ci/code/RegisterArray;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual jdk.vm.ci.code.Architecture.getAvailableValueRegisters:()Ljdk/vm/ci/code/RegisterArray;
astore 2
start local 2 1: aload 2
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
getstatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.reservedRegisters:Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
isub
iload 1
ifeq 2
iconst_1
goto 3
StackMap locals: jdk.vm.ci.code.Architecture int jdk.vm.ci.code.RegisterArray
StackMap stack: int
2: iconst_0
StackMap locals: jdk.vm.ci.code.Architecture int jdk.vm.ci.code.RegisterArray
StackMap stack: int int
3: isub
anewarray jdk.vm.ci.code.Register
astore 3
start local 3 4: getstatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.reservedRegisters:Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.asList:()Ljava/util/List;
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: aload 2
invokevirtual jdk.vm.ci.code.RegisterArray.iterator:()Ljava/util/Iterator;
astore 7
goto 13
StackMap locals: jdk.vm.ci.code.Architecture int jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.Register[] java.util.List int top java.util.Iterator
StackMap stack:
7: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.code.Register
astore 6
start local 6 8: aload 4
aload 6
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 10
9: goto 13
10: StackMap locals: jdk.vm.ci.code.Architecture int jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.Register[] java.util.List int jdk.vm.ci.code.Register java.util.Iterator
StackMap stack:
iload 1
ifeq 12
aload 6
getstatic jdk.vm.ci.sparc.SPARC.g6:Ljdk/vm/ci/code/Register;
invokevirtual jdk.vm.ci.code.Register.equals:(Ljava/lang/Object;)Z
ifeq 12
11: goto 13
12: StackMap locals:
StackMap stack:
aload 3
iload 5
iinc 5 1
aload 6
aastore
end local 6 13: StackMap locals: jdk.vm.ci.code.Architecture int jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.Register[] java.util.List int top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
14: getstatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.$assertionsDisabled:Z
ifne 15
iload 5
aload 3
arraylength
if_icmpeq 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: StackMap locals: jdk.vm.ci.code.Architecture int jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.Register[] java.util.List int
StackMap stack:
new jdk.vm.ci.code.RegisterArray
dup
aload 3
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 arch Ljdk/vm/ci/code/Architecture;
0 16 1 reserveForHeapBase Z
1 16 2 allRegisters Ljdk/vm/ci/code/RegisterArray;
4 16 3 registers [Ljdk/vm/ci/code/Register;
5 16 4 reservedRegistersList Ljava/util/List<Ljdk/vm/ci/code/Register;>;
6 16 5 idx I
8 13 6 reg Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
arch
reserveForHeapBase
public void <init>(jdk.vm.ci.code.TargetDescription, boolean);
descriptor: (Ljdk/vm/ci/code/TargetDescription;Z)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
aload 1
aload 1
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
iload 2
invokestatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.initAllocatable:(Ljdk/vm/ci/code/Architecture;Z)Ljdk/vm/ci/code/RegisterArray;
invokespecial jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.<init>:(Ljdk/vm/ci/code/TargetDescription;Ljdk/vm/ci/code/RegisterArray;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
0 2 1 target Ljdk/vm/ci/code/TargetDescription;
0 2 2 useCompressedOops Z
MethodParameters:
Name Flags
target
useCompressedOops
public void <init>(jdk.vm.ci.code.TargetDescription, jdk.vm.ci.code.RegisterArray);
descriptor: (Ljdk/vm/ci/code/TargetDescription;Ljdk/vm/ci/code/RegisterArray;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new jdk.vm.ci.code.RegisterArray
dup
bipush 6
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.sparc.SPARC.o0:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.sparc.SPARC.o1:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.sparc.SPARC.o2:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.sparc.SPARC.o3:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_4
getstatic jdk.vm.ci.sparc.SPARC.o4:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_5
getstatic jdk.vm.ci.sparc.SPARC.o5:Ljdk/vm/ci/code/Register;
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.cpuCallerParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
2: aload 0
new jdk.vm.ci.code.RegisterArray
dup
bipush 6
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.sparc.SPARC.i0:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.sparc.SPARC.i1:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.sparc.SPARC.i2:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.sparc.SPARC.i3:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_4
getstatic jdk.vm.ci.sparc.SPARC.i4:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_5
getstatic jdk.vm.ci.sparc.SPARC.i5:Ljdk/vm/ci/code/Register;
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.cpuCalleeParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
3: aload 0
new jdk.vm.ci.code.RegisterArray
dup
bipush 8
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.sparc.SPARC.f0:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.sparc.SPARC.f1:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.sparc.SPARC.f2:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.sparc.SPARC.f3:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_4
getstatic jdk.vm.ci.sparc.SPARC.f4:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_5
getstatic jdk.vm.ci.sparc.SPARC.f5:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 6
getstatic jdk.vm.ci.sparc.SPARC.f6:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 7
getstatic jdk.vm.ci.sparc.SPARC.f7:Ljdk/vm/ci/code/Register;
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.fpuFloatJavaParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
4: aload 0
new jdk.vm.ci.code.RegisterArray
dup
bipush 8
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.sparc.SPARC.d0:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
aconst_null
aastore
dup
iconst_2
getstatic jdk.vm.ci.sparc.SPARC.d2:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
aconst_null
aastore
dup
iconst_4
getstatic jdk.vm.ci.sparc.SPARC.d4:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_5
aconst_null
aastore
dup
bipush 6
getstatic jdk.vm.ci.sparc.SPARC.d6:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 7
aconst_null
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.fpuDoubleJavaParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
5: aload 0
new jdk.vm.ci.code.RegisterArray
dup
bipush 16
anewarray jdk.vm.ci.code.Register
dup
iconst_0
6: getstatic jdk.vm.ci.sparc.SPARC.f1:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.sparc.SPARC.f3:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.sparc.SPARC.f5:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.sparc.SPARC.f7:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_4
getstatic jdk.vm.ci.sparc.SPARC.f9:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_5
getstatic jdk.vm.ci.sparc.SPARC.f11:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 6
getstatic jdk.vm.ci.sparc.SPARC.f13:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 7
getstatic jdk.vm.ci.sparc.SPARC.f15:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 8
7: getstatic jdk.vm.ci.sparc.SPARC.f17:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 9
getstatic jdk.vm.ci.sparc.SPARC.f19:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 10
getstatic jdk.vm.ci.sparc.SPARC.f21:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 11
getstatic jdk.vm.ci.sparc.SPARC.f23:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 12
getstatic jdk.vm.ci.sparc.SPARC.f25:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 13
getstatic jdk.vm.ci.sparc.SPARC.f27:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 14
getstatic jdk.vm.ci.sparc.SPARC.f29:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 15
getstatic jdk.vm.ci.sparc.SPARC.f31:Ljdk/vm/ci/code/Register;
8: aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.fpuFloatNativeParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
9: aload 0
new jdk.vm.ci.code.RegisterArray
dup
bipush 16
anewarray jdk.vm.ci.code.Register
dup
iconst_0
10: getstatic jdk.vm.ci.sparc.SPARC.d0:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.sparc.SPARC.d2:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.sparc.SPARC.d4:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.sparc.SPARC.d6:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_4
getstatic jdk.vm.ci.sparc.SPARC.d8:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_5
getstatic jdk.vm.ci.sparc.SPARC.d10:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 6
getstatic jdk.vm.ci.sparc.SPARC.d12:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 7
getstatic jdk.vm.ci.sparc.SPARC.d14:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 8
11: getstatic jdk.vm.ci.sparc.SPARC.d16:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 9
getstatic jdk.vm.ci.sparc.SPARC.d18:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 10
getstatic jdk.vm.ci.sparc.SPARC.d20:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 11
getstatic jdk.vm.ci.sparc.SPARC.d22:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 12
getstatic jdk.vm.ci.sparc.SPARC.d24:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 13
getstatic jdk.vm.ci.sparc.SPARC.d26:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 14
getstatic jdk.vm.ci.sparc.SPARC.d28:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 15
getstatic jdk.vm.ci.sparc.SPARC.d30:Ljdk/vm/ci/code/Register;
12: aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.fpuDoubleNativeParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
13: aload 0
new jdk.vm.ci.code.RegisterArray
dup
bipush 16
anewarray jdk.vm.ci.code.Register
dup
iconst_0
14: getstatic jdk.vm.ci.sparc.SPARC.l0:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.sparc.SPARC.l1:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.sparc.SPARC.l2:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.sparc.SPARC.l3:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_4
getstatic jdk.vm.ci.sparc.SPARC.l4:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_5
getstatic jdk.vm.ci.sparc.SPARC.l5:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 6
getstatic jdk.vm.ci.sparc.SPARC.l6:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 7
getstatic jdk.vm.ci.sparc.SPARC.l7:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 8
15: getstatic jdk.vm.ci.sparc.SPARC.i0:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 9
getstatic jdk.vm.ci.sparc.SPARC.i1:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 10
getstatic jdk.vm.ci.sparc.SPARC.i2:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 11
getstatic jdk.vm.ci.sparc.SPARC.i3:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 12
getstatic jdk.vm.ci.sparc.SPARC.i4:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 13
getstatic jdk.vm.ci.sparc.SPARC.i5:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 14
getstatic jdk.vm.ci.sparc.SPARC.i6:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 15
getstatic jdk.vm.ci.sparc.SPARC.i7:Ljdk/vm/ci/code/Register;
16: aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.windowSaveRegisters:Ljdk/vm/ci/code/RegisterArray;
17: aload 0
aload 1
putfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.target:Ljdk/vm/ci/code/TargetDescription;
18: aload 0
aload 2
putfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.allocatable:Ljdk/vm/ci/code/RegisterArray;
19: new java.util.HashSet
dup
aload 1
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokevirtual jdk.vm.ci.code.Architecture.getAvailableValueRegisters:()Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.asList:()Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 3
start local 3 20: aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.windowSaveRegisters:Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.iterator:()Ljava/util/Iterator;
astore 5
goto 23
StackMap locals: jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterArray java.util.HashSet top java.util.Iterator
StackMap stack:
21: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.code.Register
astore 4
start local 4 22: aload 3
aload 4
invokevirtual java.util.HashSet.remove:(Ljava/lang/Object;)Z
pop
end local 4 23: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
24: aload 0
new jdk.vm.ci.code.RegisterArray
dup
aload 3
invokespecial jdk.vm.ci.code.RegisterArray.<init>:(Ljava/util/Collection;)V
putfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.callerSaveRegisters:Ljdk/vm/ci/code/RegisterArray;
25: aload 0
aload 0
getstatic jdk.vm.ci.sparc.SPARC.allRegisters:Ljdk/vm/ci/code/RegisterArray;
invokestatic jdk.vm.ci.code.RegisterAttributes.createMap:(Ljdk/vm/ci/code/RegisterConfig;Ljdk/vm/ci/code/RegisterArray;)[Ljdk/vm/ci/code/RegisterAttributes;
putfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.attributesMap:[Ljdk/vm/ci/code/RegisterAttributes;
26: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
0 27 1 target Ljdk/vm/ci/code/TargetDescription;
0 27 2 allocatable Ljdk/vm/ci/code/RegisterArray;
20 27 3 callerSaveSet Ljava/util/HashSet<Ljdk/vm/ci/code/Register;>;
22 23 4 cs Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
target
allocatable
public jdk.vm.ci.code.RegisterArray getCallerSaveRegisters();
descriptor: ()Ljdk/vm/ci/code/RegisterArray;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.callerSaveRegisters:Ljdk/vm/ci/code/RegisterArray;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
public jdk.vm.ci.code.RegisterArray getCalleeSaveRegisters();
descriptor: ()Ljdk/vm/ci/code/RegisterArray;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
public boolean areAllAllocatableRegistersCallerSaved();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
public jdk.vm.ci.code.CallingConvention getCallingConvention(jdk.vm.ci.code.CallingConvention$Type, jdk.vm.ci.meta.JavaType, jdk.vm.ci.meta.JavaType[], jdk.vm.ci.code.ValueKindFactory<?>);
descriptor: (Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/code/ValueKindFactory;)Ljdk/vm/ci/code/CallingConvention;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
checkcast jdk.vm.ci.hotspot.HotSpotCallingConventionType
astore 5
start local 5 1: aload 1
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
if_acmpeq 2
aload 1
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
if_acmpne 3
2: StackMap locals: jdk.vm.ci.hotspot.HotSpotCallingConventionType
StackMap stack:
aload 0
aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.cpuCallerParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
aload 2
aload 3
aload 5
aload 4
invokevirtual jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.callingConvention:(Ljdk/vm/ci/code/RegisterArray;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;Ljdk/vm/ci/code/ValueKindFactory;)Ljdk/vm/ci/code/CallingConvention;
areturn
3: StackMap locals:
StackMap stack:
aload 1
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCallee:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
if_acmpne 5
4: aload 0
aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.cpuCalleeParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
aload 2
aload 3
aload 5
aload 4
invokevirtual jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.callingConvention:(Ljdk/vm/ci/code/RegisterArray;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;Ljdk/vm/ci/code/ValueKindFactory;)Ljdk/vm/ci/code/CallingConvention;
areturn
5: StackMap locals:
StackMap stack:
invokestatic jdk.vm.ci.common.JVMCIError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
0 6 1 type Ljdk/vm/ci/code/CallingConvention$Type;
0 6 2 returnType Ljdk/vm/ci/meta/JavaType;
0 6 3 parameterTypes [Ljdk/vm/ci/meta/JavaType;
0 6 4 valueKindFactory Ljdk/vm/ci/code/ValueKindFactory<*>;
1 6 5 hotspotType Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
Signature: (Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/code/ValueKindFactory<*>;)Ljdk/vm/ci/code/CallingConvention;
MethodParameters:
Name Flags
type
returnType
parameterTypes
valueKindFactory
public jdk.vm.ci.code.RegisterArray getCallingConventionRegisters(jdk.vm.ci.code.CallingConvention$Type, jdk.vm.ci.meta.JavaKind);
descriptor: (Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/code/RegisterArray;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast jdk.vm.ci.hotspot.HotSpotCallingConventionType
astore 3
start local 3 1: invokestatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
aload 2
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iaload
tableswitch { // 1 - 9
1: 2
2: 2
3: 2
4: 2
5: 2
6: 5
7: 2
8: 5
9: 2
default: 6
}
2: StackMap locals: jdk.vm.ci.hotspot.HotSpotCallingConventionType
StackMap stack:
aload 3
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCallee:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
if_acmpne 3
aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.cpuCalleeParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
goto 4
StackMap locals:
StackMap stack:
3: aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.cpuCallerParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
StackMap locals:
StackMap stack: jdk.vm.ci.code.RegisterArray
4: areturn
5: StackMap locals:
StackMap stack:
aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.fpuFloatJavaParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
areturn
6: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unknown JavaKind "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic jdk.vm.ci.common.JVMCIError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
0 7 1 type Ljdk/vm/ci/code/CallingConvention$Type;
0 7 2 kind Ljdk/vm/ci/meta/JavaKind;
1 7 3 hotspotType Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
MethodParameters:
Name Flags
type
kind
private jdk.vm.ci.code.CallingConvention callingConvention(jdk.vm.ci.code.RegisterArray, jdk.vm.ci.meta.JavaType, jdk.vm.ci.meta.JavaType[], jdk.vm.ci.hotspot.HotSpotCallingConventionType, jdk.vm.ci.code.ValueKindFactory<?>);
descriptor: (Ljdk/vm/ci/code/RegisterArray;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;Ljdk/vm/ci/code/ValueKindFactory;)Ljdk/vm/ci/code/CallingConvention;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=16, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 3
arraylength
anewarray jdk.vm.ci.meta.AllocatableValue
astore 6
start local 6 1: iconst_0
istore 7
start local 7 2: iconst_0
istore 8
start local 8 3: iconst_0
istore 9
start local 9 4: aload 4
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
if_acmpne 5
iconst_1
goto 6
StackMap locals: jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig jdk.vm.ci.code.RegisterArray jdk.vm.ci.meta.JavaType jdk.vm.ci.meta.JavaType[] jdk.vm.ci.hotspot.HotSpotCallingConventionType jdk.vm.ci.code.ValueKindFactory jdk.vm.ci.meta.AllocatableValue[] int int int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 10
start local 10 7: iconst_0
istore 11
start local 11 8: goto 52
9: StackMap locals: int int
StackMap stack:
aload 3
iload 11
aaload
invokeinterface jdk.vm.ci.meta.JavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
astore 12
start local 12 10: iload 10
ifeq 23
11: invokestatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
aload 12
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iaload
tableswitch { // 1 - 9
1: 12
2: 12
3: 12
4: 12
5: 12
6: 16
7: 12
8: 14
9: 12
default: 18
}
12: StackMap locals: jdk.vm.ci.meta.JavaKind
StackMap stack:
aload 1
astore 13
start local 13 13: goto 19
end local 13 14: StackMap locals:
StackMap stack:
aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.fpuDoubleNativeParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
astore 13
start local 13 15: goto 19
end local 13 16: StackMap locals:
StackMap stack:
aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.fpuFloatNativeParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
astore 13
start local 13 17: goto 19
end local 13 18: StackMap locals:
StackMap stack:
invokestatic jdk.vm.ci.common.JVMCIError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
start local 13 19: StackMap locals: jdk.vm.ci.code.RegisterArray
StackMap stack:
iload 11
aload 13
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
if_icmpge 40
20: aload 6
iload 11
aload 13
iload 11
invokevirtual jdk.vm.ci.code.RegisterArray.get:(I)Ljdk/vm/ci/code/Register;
aload 5
aload 12
invokeinterface jdk.vm.ci.code.ValueKindFactory.getValueKind:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ValueKind;
invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
aastore
21: iload 9
aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.target:Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokevirtual jdk.vm.ci.code.Architecture.getWordSize:()I
iadd
istore 9
end local 13 22: goto 40
23: StackMap locals:
StackMap stack:
invokestatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
aload 12
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iaload
tableswitch { // 1 - 9
1: 24
2: 24
3: 24
4: 24
5: 24
6: 35
7: 24
8: 28
9: 24
default: 39
}
24: StackMap locals:
StackMap stack:
iload 7
aload 1
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
if_icmpge 40
25: aload 1
iload 7
iinc 7 1
invokevirtual jdk.vm.ci.code.RegisterArray.get:(I)Ljdk/vm/ci/code/Register;
astore 13
start local 13 26: aload 6
iload 11
aload 13
aload 5
aload 12
invokeinterface jdk.vm.ci.code.ValueKindFactory.getValueKind:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ValueKind;
invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
aastore
end local 13 27: goto 40
28: StackMap locals:
StackMap stack:
iload 8
aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.fpuFloatJavaParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
if_icmpge 40
29: iload 8
iconst_2
irem
ifeq 31
30: iinc 8 1
31: StackMap locals:
StackMap stack:
aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.fpuDoubleJavaParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
iload 8
invokevirtual jdk.vm.ci.code.RegisterArray.get:(I)Ljdk/vm/ci/code/Register;
astore 13
start local 13 32: iinc 8 2
33: aload 6
iload 11
aload 13
aload 5
aload 12
invokeinterface jdk.vm.ci.code.ValueKindFactory.getValueKind:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ValueKind;
invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
aastore
end local 13 34: goto 40
35: StackMap locals:
StackMap stack:
iload 8
aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.fpuFloatJavaParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
if_icmpge 40
36: aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.fpuFloatJavaParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
iload 8
iinc 8 1
invokevirtual jdk.vm.ci.code.RegisterArray.get:(I)Ljdk/vm/ci/code/Register;
astore 13
start local 13 37: aload 6
iload 11
aload 13
aload 5
aload 12
invokeinterface jdk.vm.ci.code.ValueKindFactory.getValueKind:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ValueKind;
invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
aastore
end local 13 38: goto 40
39: StackMap locals:
StackMap stack:
invokestatic jdk.vm.ci.common.JVMCIError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
40: StackMap locals:
StackMap stack:
aload 6
iload 11
aaload
ifnonnull 51
41: aload 5
aload 12
invokeinterface jdk.vm.ci.code.ValueKindFactory.getValueKind:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ValueKind;
astore 13
start local 13 42: aload 13
invokevirtual jdk.vm.ci.meta.ValueKind.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
invokeinterface jdk.vm.ci.meta.PlatformKind.getSizeInBytes:()I
istore 14
start local 14 43: iload 10
ifeq 45
44: iload 9
aload 0
getfield jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.target:Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokevirtual jdk.vm.ci.code.Architecture.getWordSize:()I
iload 14
isub
iadd
istore 9
45: StackMap locals: jdk.vm.ci.meta.ValueKind int
StackMap stack:
iload 9
iload 14
invokestatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.roundUp:(II)I
istore 9
46: iload 9
sipush 128
iadd
istore 15
start local 15 47: aload 6
iload 11
aload 13
iload 15
aload 4
getfield jdk.vm.ci.hotspot.HotSpotCallingConventionType.out:Z
ifeq 48
iconst_0
goto 49
StackMap locals: jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig jdk.vm.ci.code.RegisterArray jdk.vm.ci.meta.JavaType jdk.vm.ci.meta.JavaType[] jdk.vm.ci.hotspot.HotSpotCallingConventionType jdk.vm.ci.code.ValueKindFactory jdk.vm.ci.meta.AllocatableValue[] int int int int int jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.ValueKind int int
StackMap stack: jdk.vm.ci.meta.AllocatableValue[] int jdk.vm.ci.meta.ValueKind int
48: iconst_1
StackMap locals: jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig jdk.vm.ci.code.RegisterArray jdk.vm.ci.meta.JavaType jdk.vm.ci.meta.JavaType[] jdk.vm.ci.hotspot.HotSpotCallingConventionType jdk.vm.ci.code.ValueKindFactory jdk.vm.ci.meta.AllocatableValue[] int int int int int jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.ValueKind int int
StackMap stack: jdk.vm.ci.meta.AllocatableValue[] int jdk.vm.ci.meta.ValueKind int int
49: invokestatic jdk.vm.ci.code.StackSlot.get:(Ljdk/vm/ci/meta/ValueKind;IZ)Ljdk/vm/ci/code/StackSlot;
aastore
50: iload 9
iload 14
iadd
istore 9
end local 15 end local 14 end local 13 end local 12 51: StackMap locals: jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig jdk.vm.ci.code.RegisterArray jdk.vm.ci.meta.JavaType jdk.vm.ci.meta.JavaType[] jdk.vm.ci.hotspot.HotSpotCallingConventionType jdk.vm.ci.code.ValueKindFactory jdk.vm.ci.meta.AllocatableValue[] int int int int int
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
52: iload 11
aload 3
arraylength
if_icmplt 9
end local 11 53: aload 2
ifnonnull 54
getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
goto 55
StackMap locals:
StackMap stack:
54: aload 2
invokeinterface jdk.vm.ci.meta.JavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
StackMap locals:
StackMap stack: jdk.vm.ci.meta.JavaKind
55: astore 11
start local 11 56: aload 11
getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 57
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
goto 58
StackMap locals: jdk.vm.ci.meta.JavaKind
StackMap stack:
57: aload 11
aload 4
invokestatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.getReturnRegister:(Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;)Ljdk/vm/ci/code/Register;
aload 5
aload 11
invokevirtual jdk.vm.ci.meta.JavaKind.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
invokeinterface jdk.vm.ci.code.ValueKindFactory.getValueKind:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ValueKind;
invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
StackMap locals:
StackMap stack: jdk.vm.ci.meta.AllocatableValue
58: astore 12
start local 12 59: new jdk.vm.ci.code.CallingConvention
dup
iload 9
aload 12
aload 6
invokespecial jdk.vm.ci.code.CallingConvention.<init>:(ILjdk/vm/ci/meta/AllocatableValue;[Ljdk/vm/ci/meta/AllocatableValue;)V
areturn
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
0 60 1 generalParameterRegisters Ljdk/vm/ci/code/RegisterArray;
0 60 2 returnType Ljdk/vm/ci/meta/JavaType;
0 60 3 parameterTypes [Ljdk/vm/ci/meta/JavaType;
0 60 4 type Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
0 60 5 valueKindFactory Ljdk/vm/ci/code/ValueKindFactory<*>;
1 60 6 locations [Ljdk/vm/ci/meta/AllocatableValue;
2 60 7 currentGeneral I
3 60 8 currentFloating I
4 60 9 currentStackOffset I
7 60 10 isNative Z
8 53 11 i I
10 51 12 kind Ljdk/vm/ci/meta/JavaKind;
13 14 13 registerSet Ljdk/vm/ci/code/RegisterArray;
15 16 13 registerSet Ljdk/vm/ci/code/RegisterArray;
17 18 13 registerSet Ljdk/vm/ci/code/RegisterArray;
19 22 13 registerSet Ljdk/vm/ci/code/RegisterArray;
26 27 13 register Ljdk/vm/ci/code/Register;
32 34 13 register Ljdk/vm/ci/code/Register;
37 38 13 register Ljdk/vm/ci/code/Register;
42 51 13 valueKind Ljdk/vm/ci/meta/ValueKind<*>;
43 51 14 typeSize I
47 51 15 slotOffset I
56 60 11 returnKind Ljdk/vm/ci/meta/JavaKind;
59 60 12 returnLocation Ljdk/vm/ci/meta/AllocatableValue;
Signature: (Ljdk/vm/ci/code/RegisterArray;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;Ljdk/vm/ci/code/ValueKindFactory<*>;)Ljdk/vm/ci/code/CallingConvention;
MethodParameters:
Name Flags
generalParameterRegisters
returnType
parameterTypes
type
valueKindFactory
private static int roundUp(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iload 1
iadd
iconst_1
isub
iload 1
idiv
iload 1
imul
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 number I
0 1 1 mod I
MethodParameters:
Name Flags
number
mod
public jdk.vm.ci.code.Register getReturnRegister(jdk.vm.ci.meta.JavaKind);
descriptor: (Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/code/Register;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCallee:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
invokestatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.getReturnRegister:(Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;)Ljdk/vm/ci/code/Register;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
0 1 1 kind Ljdk/vm/ci/meta/JavaKind;
MethodParameters:
Name Flags
kind
private static jdk.vm.ci.code.Register getReturnRegister(jdk.vm.ci.meta.JavaKind, jdk.vm.ci.hotspot.HotSpotCallingConventionType);
descriptor: (Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;)Ljdk/vm/ci/code/Register;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: invokestatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
aload 0
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iaload
tableswitch { // 1 - 11
1: 1
2: 1
3: 1
4: 1
5: 1
6: 4
7: 1
8: 5
9: 1
10: 6
11: 6
default: 7
}
1: StackMap locals:
StackMap stack:
aload 1
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCallee:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
if_acmpne 2
getstatic jdk.vm.ci.sparc.SPARC.i0:Ljdk/vm/ci/code/Register;
goto 3
StackMap locals:
StackMap stack:
2: getstatic jdk.vm.ci.sparc.SPARC.o0:Ljdk/vm/ci/code/Register;
StackMap locals:
StackMap stack: jdk.vm.ci.code.Register
3: areturn
4: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.sparc.SPARC.f0:Ljdk/vm/ci/code/Register;
areturn
5: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.sparc.SPARC.d0:Ljdk/vm/ci/code/Register;
areturn
6: StackMap locals:
StackMap stack:
aconst_null
areturn
7: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "no return register for type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 kind Ljdk/vm/ci/meta/JavaKind;
0 8 1 type Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
MethodParameters:
Name Flags
kind
type
public jdk.vm.ci.code.Register getFrameRegister();
descriptor: ()Ljdk/vm/ci/code/Register;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic jdk.vm.ci.sparc.SPARC.sp:Ljdk/vm/ci/code/Register;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "Allocatable: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.getAllocatableRegisters:()Ljdk/vm/ci/code/RegisterArray;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "%n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "CallerSave: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.getCallerSaveRegisters:()Ljdk/vm/ci/code/RegisterArray;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "%n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig;
static int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.vm.ci.meta.JavaKind.values:()[Ljdk/vm/ci/meta/JavaKind;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_4
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 8
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 6
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 11
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_5
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 7
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 9
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_3
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 10
iastore
33: goto 35
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
34: pop
StackMap locals:
StackMap stack:
35: aload 0
dup
putstatic jdk.vm.ci.hotspot.sparc.SPARCHotSpotRegisterConfig.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
32 33 34 Class java.lang.NoSuchFieldError
}
SourceFile: "SPARCHotSpotRegisterConfig.java"
InnerClasses:
public abstract Type = jdk.vm.ci.code.CallingConvention$Type of jdk.vm.ci.code.CallingConvention
public RegisterCategory = jdk.vm.ci.code.Register$RegisterCategory of jdk.vm.ci.code.Register