public class jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig 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.amd64.AMD64HotSpotRegisterConfig
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.RegisterArray callerSaved;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean allAllocatableAreCallerSaved;
descriptor: Z
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 javaGeneralParameterRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray nativeGeneralParameterRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray javaXMMParameterRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray nativeXMMParameterRegisters;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean windowsOS;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean needsNativeStackHomeSpace;
descriptor: Z
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/amd64/AMD64HotSpotRegisterConfig;
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.amd64.AMD64HotSpotRegisterConfig.$assertionsDisabled:Z
3: new jdk.vm.ci.code.RegisterArray
dup
iconst_2
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.amd64.AMD64.rsp:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.amd64.AMD64.r15:Ljdk/vm/ci/code/Register;
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putstatic jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.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.amd64.AMD64HotSpotRegisterConfig.allocatable:Ljdk/vm/ci/code/RegisterArray;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig;
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.amd64.AMD64HotSpotRegisterConfig 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.amd64.AMD64HotSpotRegisterConfig.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
astore 4
start local 4 7: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig;
0 8 1 kind Ljdk/vm/ci/meta/PlatformKind;
0 8 2 registers Ljdk/vm/ci/code/RegisterArray;
1 8 3 list Ljava/util/ArrayList<Ljdk/vm/ci/code/Register;>;
3 5 4 reg Ljdk/vm/ci/code/Register;
7 8 4 ret Ljdk/vm/ci/code/RegisterArray;
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.amd64.AMD64HotSpotRegisterConfig.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/amd64/AMD64HotSpotRegisterConfig;
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.amd64.AMD64HotSpotRegisterConfig.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.amd64.AMD64HotSpotRegisterConfig.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.amd64.AMD64.r12: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.amd64.AMD64HotSpotRegisterConfig.$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, boolean);
descriptor: (Ljdk/vm/ci/code/TargetDescription;ZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 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.amd64.AMD64HotSpotRegisterConfig.initAllocatable:(Ljdk/vm/ci/code/Architecture;Z)Ljdk/vm/ci/code/RegisterArray;
iload 3
invokespecial jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.<init>:(Ljdk/vm/ci/code/TargetDescription;Ljdk/vm/ci/code/RegisterArray;Z)V
1: getstatic jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.$assertionsDisabled:Z
ifne 2
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.callerSaved:Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.allocatable:Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
if_icmpge 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig jdk.vm.ci.code.TargetDescription int int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig;
0 3 1 target Ljdk/vm/ci/code/TargetDescription;
0 3 2 useCompressedOops Z
0 3 3 windowsOs Z
MethodParameters:
Name Flags
target
useCompressedOops
windowsOs
public void <init>(jdk.vm.ci.code.TargetDescription, jdk.vm.ci.code.RegisterArray, boolean);
descriptor: (Ljdk/vm/ci/code/TargetDescription;Ljdk/vm/ci/code/RegisterArray;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.target:Ljdk/vm/ci/code/TargetDescription;
2: aload 0
iload 3
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.windowsOS:Z
3: iload 3
ifeq 9
4: aload 0
new jdk.vm.ci.code.RegisterArray
dup
bipush 6
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.amd64.AMD64.rdx:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.amd64.AMD64.r8:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.amd64.AMD64.r9:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.amd64.AMD64.rdi:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_4
getstatic jdk.vm.ci.amd64.AMD64.rsi:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_5
getstatic jdk.vm.ci.amd64.AMD64.rcx:Ljdk/vm/ci/code/Register;
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.javaGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
5: aload 0
new jdk.vm.ci.code.RegisterArray
dup
iconst_4
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.amd64.AMD64.rcx:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.amd64.AMD64.rdx:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.amd64.AMD64.r8:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.amd64.AMD64.r9:Ljdk/vm/ci/code/Register;
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.nativeGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
6: aload 0
new jdk.vm.ci.code.RegisterArray
dup
iconst_4
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.amd64.AMD64.xmm0:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.amd64.AMD64.xmm1:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.amd64.AMD64.xmm2:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.amd64.AMD64.xmm3:Ljdk/vm/ci/code/Register;
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.nativeXMMParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
7: aload 0
iconst_1
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.needsNativeStackHomeSpace:Z
8: goto 13
9: StackMap locals: jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterArray int
StackMap stack:
aload 0
new jdk.vm.ci.code.RegisterArray
dup
bipush 6
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.amd64.AMD64.rsi:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.amd64.AMD64.rdx:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.amd64.AMD64.rcx:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.amd64.AMD64.r8:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_4
getstatic jdk.vm.ci.amd64.AMD64.r9:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_5
getstatic jdk.vm.ci.amd64.AMD64.rdi:Ljdk/vm/ci/code/Register;
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.javaGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
10: aload 0
new jdk.vm.ci.code.RegisterArray
dup
bipush 6
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.amd64.AMD64.rdi:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.amd64.AMD64.rsi:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.amd64.AMD64.rdx:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.amd64.AMD64.rcx:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_4
getstatic jdk.vm.ci.amd64.AMD64.r8:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_5
getstatic jdk.vm.ci.amd64.AMD64.r9:Ljdk/vm/ci/code/Register;
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.nativeGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
11: aload 0
new jdk.vm.ci.code.RegisterArray
dup
bipush 8
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.amd64.AMD64.xmm0:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.amd64.AMD64.xmm1:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.amd64.AMD64.xmm2:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.amd64.AMD64.xmm3:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_4
getstatic jdk.vm.ci.amd64.AMD64.xmm4:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_5
getstatic jdk.vm.ci.amd64.AMD64.xmm5:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 6
getstatic jdk.vm.ci.amd64.AMD64.xmm6:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 7
getstatic jdk.vm.ci.amd64.AMD64.xmm7:Ljdk/vm/ci/code/Register;
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.nativeXMMParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
12: aload 0
iconst_0
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.needsNativeStackHomeSpace:Z
13: StackMap locals:
StackMap stack:
aload 0
new jdk.vm.ci.code.RegisterArray
dup
bipush 8
anewarray jdk.vm.ci.code.Register
dup
iconst_0
getstatic jdk.vm.ci.amd64.AMD64.xmm0:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
getstatic jdk.vm.ci.amd64.AMD64.xmm1:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
getstatic jdk.vm.ci.amd64.AMD64.xmm2:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
getstatic jdk.vm.ci.amd64.AMD64.xmm3:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_4
getstatic jdk.vm.ci.amd64.AMD64.xmm4:Ljdk/vm/ci/code/Register;
aastore
dup
iconst_5
getstatic jdk.vm.ci.amd64.AMD64.xmm5:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 6
getstatic jdk.vm.ci.amd64.AMD64.xmm6:Ljdk/vm/ci/code/Register;
aastore
dup
bipush 7
getstatic jdk.vm.ci.amd64.AMD64.xmm7:Ljdk/vm/ci/code/Register;
aastore
invokespecial jdk.vm.ci.code.RegisterArray.<init>:([Ljdk/vm/ci/code/Register;)V
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.javaXMMParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
14: aload 0
aload 2
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.allocatable:Ljdk/vm/ci/code/RegisterArray;
15: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 4
start local 4 16: aload 2
aload 4
invokevirtual jdk.vm.ci.code.RegisterArray.addTo:(Ljava/util/Collection;)V
17: aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.javaXMMParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
aload 4
invokevirtual jdk.vm.ci.code.RegisterArray.addTo:(Ljava/util/Collection;)V
18: aload 4
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.javaGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.asList:()Ljava/util/List;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
19: aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.nativeGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
aload 4
invokevirtual jdk.vm.ci.code.RegisterArray.addTo:(Ljava/util/Collection;)V
20: aload 0
new jdk.vm.ci.code.RegisterArray
dup
aload 4
invokespecial jdk.vm.ci.code.RegisterArray.<init>:(Ljava/util/Collection;)V
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.callerSaved:Ljdk/vm/ci/code/RegisterArray;
21: aload 0
iconst_1
putfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.allAllocatableAreCallerSaved:Z
22: aload 0
aload 0
aload 1
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokevirtual jdk.vm.ci.code.Architecture.getRegisters:()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.amd64.AMD64HotSpotRegisterConfig.attributesMap:[Ljdk/vm/ci/code/RegisterAttributes;
23: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Ljdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig;
0 24 1 target Ljdk/vm/ci/code/TargetDescription;
0 24 2 allocatable Ljdk/vm/ci/code/RegisterArray;
0 24 3 windowsOS Z
16 24 4 callerSaveSet Ljava/util/Set<Ljdk/vm/ci/code/Register;>;
MethodParameters:
Name Flags
target
allocatable
windowsOS
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.amd64.AMD64HotSpotRegisterConfig.callerSaved:Ljdk/vm/ci/code/RegisterArray;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig;
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/amd64/AMD64HotSpotRegisterConfig;
public boolean areAllAllocatableRegistersCallerSaved();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.allAllocatableAreCallerSaved:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig;
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=8, 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.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
if_acmpne 3
2: aload 0
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.nativeGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.nativeXMMParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.windowsOS:Z
aload 2
aload 3
aload 5
aload 4
invokevirtual jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.callingConvention:(Ljdk/vm/ci/code/RegisterArray;Ljdk/vm/ci/code/RegisterArray;ZLjdk/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: jdk.vm.ci.hotspot.HotSpotCallingConventionType
StackMap stack:
aload 0
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.javaGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.javaXMMParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
iconst_0
aload 2
aload 3
aload 5
aload 4
invokevirtual jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.callingConvention:(Ljdk/vm/ci/code/RegisterArray;Ljdk/vm/ci/code/RegisterArray;ZLjdk/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
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 4 0 this Ljdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig;
0 4 1 type Ljdk/vm/ci/code/CallingConvention$Type;
0 4 2 returnType Ljdk/vm/ci/meta/JavaType;
0 4 3 parameterTypes [Ljdk/vm/ci/meta/JavaType;
0 4 4 valueKindFactory Ljdk/vm/ci/code/ValueKindFactory<*>;
1 4 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=2, 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.amd64.AMD64HotSpotRegisterConfig.$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: 8
}
2: StackMap locals: jdk.vm.ci.hotspot.HotSpotCallingConventionType
StackMap stack:
aload 3
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
if_acmpne 3
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.nativeGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
goto 4
StackMap locals:
StackMap stack:
3: aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.javaGeneralParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
StackMap locals:
StackMap stack: jdk.vm.ci.code.RegisterArray
4: areturn
5: StackMap locals:
StackMap stack:
aload 3
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
if_acmpne 6
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.nativeXMMParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
goto 7
StackMap locals:
StackMap stack:
6: aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.javaXMMParameterRegisters:Ljdk/vm/ci/code/RegisterArray;
StackMap locals:
StackMap stack: jdk.vm.ci.code.RegisterArray
7: areturn
8: StackMap locals:
StackMap stack:
invokestatic jdk.vm.ci.common.JVMCIError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig;
0 9 1 type Ljdk/vm/ci/code/CallingConvention$Type;
0 9 2 kind Ljdk/vm/ci/meta/JavaKind;
1 9 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.code.RegisterArray, boolean, 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/code/RegisterArray;ZLjdk/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=15, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: getstatic jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.$assertionsDisabled:Z
ifne 1
iload 3
ifeq 1
aload 1
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
aload 2
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
if_icmpeq 1
new java.lang.AssertionError
dup
ldc "must be same size in unified mode"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 5
arraylength
anewarray jdk.vm.ci.meta.AllocatableValue
astore 8
start local 8 2: iconst_0
istore 9
start local 9 3: iconst_0
istore 10
start local 10 4: aload 6
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
if_acmpne 5
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.needsNativeStackHomeSpace:Z
ifeq 5
aload 1
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.target:Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.wordSize:I
imul
goto 6
StackMap locals: jdk.vm.ci.meta.AllocatableValue[] int int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 11
start local 11 7: iconst_0
istore 12
start local 12 8: goto 31
9: StackMap locals: int int
StackMap stack:
aload 5
iload 12
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 13
start local 13 10: invokestatic jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
aload 13
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iaload
tableswitch { // 1 - 9
1: 11
2: 11
3: 11
4: 11
5: 11
6: 15
7: 11
8: 15
9: 11
default: 23
}
11: StackMap locals: jdk.vm.ci.meta.JavaKind
StackMap stack:
iload 9
aload 1
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
if_icmpge 24
12: aload 1
iload 9
iinc 9 1
invokevirtual jdk.vm.ci.code.RegisterArray.get:(I)Ljdk/vm/ci/code/Register;
astore 14
start local 14 13: aload 8
iload 12
aload 14
aload 7
aload 13
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 14 14: goto 24
15: StackMap locals:
StackMap stack:
iload 3
ifeq 16
iload 9
goto 17
StackMap locals:
StackMap stack:
16: iload 10
StackMap locals:
StackMap stack: int
17: aload 2
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
if_icmpge 24
18: aload 2
iload 3
ifeq 19
iload 9
iinc 9 1
goto 20
StackMap locals:
StackMap stack: jdk.vm.ci.code.RegisterArray
19: iload 10
iinc 10 1
StackMap locals: jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.RegisterArray int 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 jdk.vm.ci.meta.JavaKind
StackMap stack: jdk.vm.ci.code.RegisterArray int
20: invokevirtual jdk.vm.ci.code.RegisterArray.get:(I)Ljdk/vm/ci/code/Register;
astore 14
start local 14 21: aload 8
iload 12
aload 14
aload 7
aload 13
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 14 22: goto 24
23: StackMap locals:
StackMap stack:
invokestatic jdk.vm.ci.common.JVMCIError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
24: StackMap locals:
StackMap stack:
aload 8
iload 12
aaload
ifnonnull 30
25: aload 7
aload 13
invokeinterface jdk.vm.ci.code.ValueKindFactory.getValueKind:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ValueKind;
astore 14
start local 14 26: aload 8
iload 12
aload 14
iload 11
aload 6
getfield jdk.vm.ci.hotspot.HotSpotCallingConventionType.out:Z
ifeq 27
iconst_0
goto 28
StackMap locals: jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.RegisterArray int 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 jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.ValueKind
StackMap stack: jdk.vm.ci.meta.AllocatableValue[] int jdk.vm.ci.meta.ValueKind int
27: iconst_1
StackMap locals: jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig jdk.vm.ci.code.RegisterArray jdk.vm.ci.code.RegisterArray int 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 jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.ValueKind
StackMap stack: jdk.vm.ci.meta.AllocatableValue[] int jdk.vm.ci.meta.ValueKind int int
28: invokestatic jdk.vm.ci.code.StackSlot.get:(Ljdk/vm/ci/meta/ValueKind;IZ)Ljdk/vm/ci/code/StackSlot;
aastore
29: iload 11
aload 14
invokevirtual jdk.vm.ci.meta.ValueKind.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
invokeinterface jdk.vm.ci.meta.PlatformKind.getSizeInBytes:()I
aload 0
getfield jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.target:Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.wordSize:I
invokestatic java.lang.Math.max:(II)I
iadd
istore 11
end local 14 end local 13 30: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
31: iload 12
aload 5
arraylength
if_icmplt 9
end local 12 32: getstatic jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.$assertionsDisabled:Z
ifne 33
iload 3
ifeq 33
iload 10
ifeq 33
new java.lang.AssertionError
dup
ldc "shouldn't be used in unified mode"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
33: StackMap locals:
StackMap stack:
aload 4
ifnonnull 34
getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
goto 35
StackMap locals:
StackMap stack:
34: aload 4
invokeinterface jdk.vm.ci.meta.JavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
StackMap locals:
StackMap stack: jdk.vm.ci.meta.JavaKind
35: astore 12
start local 12 36: aload 12
getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 37
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
goto 38
StackMap locals: jdk.vm.ci.meta.JavaKind
StackMap stack:
37: aload 0
aload 12
invokevirtual jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.getReturnRegister:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/code/Register;
aload 7
aload 12
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
38: astore 13
start local 13 39: new jdk.vm.ci.code.CallingConvention
dup
iload 11
aload 13
aload 8
invokespecial jdk.vm.ci.code.CallingConvention.<init>:(ILjdk/vm/ci/meta/AllocatableValue;[Ljdk/vm/ci/meta/AllocatableValue;)V
areturn
end local 13 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 40 0 this Ljdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig;
0 40 1 generalParameterRegisters Ljdk/vm/ci/code/RegisterArray;
0 40 2 xmmParameterRegisters Ljdk/vm/ci/code/RegisterArray;
0 40 3 unified Z
0 40 4 returnType Ljdk/vm/ci/meta/JavaType;
0 40 5 parameterTypes [Ljdk/vm/ci/meta/JavaType;
0 40 6 type Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
0 40 7 valueKindFactory Ljdk/vm/ci/code/ValueKindFactory<*>;
2 40 8 locations [Ljdk/vm/ci/meta/AllocatableValue;
3 40 9 currentGeneral I
4 40 10 currentXMM I
7 40 11 currentStackOffset I
8 32 12 i I
10 30 13 kind Ljdk/vm/ci/meta/JavaKind;
13 14 14 register Ljdk/vm/ci/code/Register;
21 22 14 register Ljdk/vm/ci/code/Register;
26 30 14 valueKind Ljdk/vm/ci/meta/ValueKind<*>;
36 40 12 returnKind Ljdk/vm/ci/meta/JavaKind;
39 40 13 returnLocation Ljdk/vm/ci/meta/AllocatableValue;
Signature: (Ljdk/vm/ci/code/RegisterArray;Ljdk/vm/ci/code/RegisterArray;ZLjdk/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
xmmParameterRegisters
unified
returnType
parameterTypes
type
valueKindFactory
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=5, locals=2, args_size=2
start local 0 start local 1 0: invokestatic jdk.vm.ci.hotspot.amd64.AMD64HotSpotRegisterConfig.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
aload 1
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iaload
tableswitch { // 1 - 11
1: 1
2: 1
3: 1
4: 1
5: 1
6: 2
7: 1
8: 2
9: 1
10: 3
11: 3
default: 4
}
1: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.amd64.AMD64.rax:Ljdk/vm/ci/code/Register;
areturn
2: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.amd64.AMD64.xmm0:Ljdk/vm/ci/code/Register;
areturn
3: StackMap locals:
StackMap stack:
aconst_null
areturn
4: 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 1
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 5 0 this Ljdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig;
0 5 1 kind Ljdk/vm/ci/meta/JavaKind;
MethodParameters:
Name Flags
kind
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.amd64.AMD64.rsp:Ljdk/vm/ci/code/Register;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig;
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.amd64.AMD64HotSpotRegisterConfig.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.amd64.AMD64HotSpotRegisterConfig.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/amd64/AMD64HotSpotRegisterConfig;
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.amd64.AMD64HotSpotRegisterConfig.$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.amd64.AMD64HotSpotRegisterConfig.$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: "AMD64HotSpotRegisterConfig.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