public class org.graalvm.compiler.hotspot.stubs.NewArrayStub extends org.graalvm.compiler.hotspot.stubs.SnippetStub
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.stubs.NewArrayStub
super_class: org.graalvm.compiler.hotspot.stubs.SnippetStub
{
public static final org.graalvm.compiler.core.common.spi.ForeignCallDescriptor NEW_ARRAY_C;
descriptor: Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, 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=7, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/hotspot/stubs/NewArrayStub;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.$assertionsDisabled:Z
3: ldc Lorg/graalvm/compiler/hotspot/stubs/NewArrayStub;
ldc "newArrayC"
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Lorg/graalvm/compiler/word/Word;
aastore
dup
iconst_1
ldc Lorg/graalvm/compiler/hotspot/word/KlassPointer;
aastore
dup
iconst_2
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.newDescriptor:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
putstatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.NEW_ARRAY_C:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.options.OptionValues, org.graalvm.compiler.hotspot.meta.HotSpotProviders, org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage);
descriptor: (Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
ldc "newArray"
aload 1
aload 2
aload 3
invokespecial org.graalvm.compiler.hotspot.stubs.SnippetStub.<init>:(Ljava/lang/String;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/hotspot/stubs/NewArrayStub;
0 2 1 options Lorg/graalvm/compiler/options/OptionValues;
0 2 2 providers Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
0 2 3 linkage Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
MethodParameters:
Name Flags
options
providers
linkage
protected java.lang.Object[] makeConstArgs();
descriptor: ()[Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.stubs.NewArrayStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
ldc [I
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectType
astore 1
start local 1 1: aload 0
getfield org.graalvm.compiler.hotspot.stubs.NewArrayStub.method:Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
iconst_0
invokeinterface jdk.vm.ci.meta.Signature.getParameterCount:(Z)I
istore 2
start local 2 2: iload 2
anewarray java.lang.Object
astore 3
start local 3 3: getstatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.$assertionsDisabled:Z
ifne 4
aload 0
iconst_3
ldc "intArrayHub"
invokevirtual org.graalvm.compiler.hotspot.stubs.NewArrayStub.checkConstArg:(ILjava/lang/String;)Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: jdk.vm.ci.hotspot.HotSpotResolvedObjectType int java.lang.Object[]
StackMap stack:
getstatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.$assertionsDisabled:Z
ifne 5
aload 0
iconst_4
ldc "threadRegister"
invokevirtual org.graalvm.compiler.hotspot.stubs.NewArrayStub.checkConstArg:(ILjava/lang/String;)Z
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.$assertionsDisabled:Z
ifne 6
aload 0
iconst_5
ldc "options"
invokevirtual org.graalvm.compiler.hotspot.stubs.NewArrayStub.checkConstArg:(ILjava/lang/String;)Z
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 3
iconst_3
invokestatic org.graalvm.compiler.hotspot.nodes.type.KlassPointerStamp.klassNonNull:()Lorg/graalvm/compiler/hotspot/nodes/type/KlassPointerStamp;
aload 1
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.klass:()Ljdk/vm/ci/meta/Constant;
aconst_null
invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/ConstantNode;
aastore
7: aload 3
iconst_4
aload 0
getfield org.graalvm.compiler.hotspot.stubs.NewArrayStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getRegisters:()Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
invokeinterface org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider.getThreadRegister:()Ljdk/vm/ci/code/Register;
aastore
8: aload 3
iconst_5
aload 0
getfield org.graalvm.compiler.hotspot.stubs.NewArrayStub.options:Lorg/graalvm/compiler/options/OptionValues;
aastore
9: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/hotspot/stubs/NewArrayStub;
1 10 1 intArrayType Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
2 10 2 count I
3 10 3 args [Ljava/lang/Object;
static boolean logging(org.graalvm.compiler.options.OptionValues);
descriptor: (Lorg/graalvm/compiler/options/OptionValues;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.graalvm.compiler.hotspot.stubs.StubOptions.TraceNewArrayStub:Lorg/graalvm/compiler/options/OptionKey;
aload 0
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 options Lorg/graalvm/compiler/options/OptionValues;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
MethodParameters:
Name Flags
options
private static java.lang.Object newArray(org.graalvm.compiler.hotspot.word.KlassPointer, int, boolean, org.graalvm.compiler.hotspot.word.KlassPointer, jdk.vm.ci.code.Register, org.graalvm.compiler.options.OptionValues);
descriptor: (Lorg/graalvm/compiler/hotspot/word/KlassPointer;IZLorg/graalvm/compiler/hotspot/word/KlassPointer;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=14, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.readLayoutHelper:(Lorg/graalvm/compiler/hotspot/word/KlassPointer;)I
istore 6
start local 6 1: iload 6
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperLog2ElementSizeShift:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
ishr
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperLog2ElementSizeMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
iand
istore 7
start local 7 2: iload 6
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperHeaderSizeShift:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
ishr
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperHeaderSizeMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
iand
istore 8
start local 8 3: iload 6
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperElementTypeShift:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
ishr
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperElementTypeMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
iand
istore 9
start local 9 4: iload 1
iload 8
iload 7
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayAllocationSize:(III)I
istore 10
start local 10 5: aload 5
invokestatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.logging:(Lorg/graalvm/compiler/options/OptionValues;)Z
ifeq 10
6: ldc "newArray: element kind %d\n"
iload 9
i2l
invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.printf:(Ljava/lang/String;J)V
7: ldc "newArray: array length %d\n"
iload 1
i2l
invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.printf:(Ljava/lang/String;J)V
8: ldc "newArray: array size %d\n"
iload 10
i2l
invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.printf:(Ljava/lang/String;J)V
9: ldc "newArray: hub=%p\n"
aload 0
invokevirtual org.graalvm.compiler.hotspot.word.KlassPointer.asWord:()Ljdk/internal/vm/compiler/word/Pointer;
invokeinterface jdk.internal.vm.compiler.word.Pointer.rawValue:()J
invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.printf:(Ljava/lang/String;J)V
10: StackMap locals: org.graalvm.compiler.hotspot.word.KlassPointer int int org.graalvm.compiler.hotspot.word.KlassPointer jdk.vm.ci.code.Register org.graalvm.compiler.options.OptionValues int int int int int
StackMap stack:
aload 4
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.registerAsWord:(Ljdk/vm/ci/code/Register;)Lorg/graalvm/compiler/word/Word;
astore 11
start local 11 11: invokestatic org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode.inlineContiguousAllocationSupported:()Z
istore 12
start local 12 12: getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.useFastTLABRefill:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
ifeq 20
iload 12
ifeq 20
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.useCMSIncrementalMode:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
ifne 20
iload 1
iflt 20
13: iload 1
ldc 16777215
if_icmpgt 20
14: aload 11
aload 3
iload 10
aload 5
invokestatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.logging:(Lorg/graalvm/compiler/options/OptionValues;)Z
invokestatic org.graalvm.compiler.hotspot.stubs.NewInstanceStub.refillAllocate:(Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/hotspot/word/KlassPointer;IZ)Lorg/graalvm/compiler/word/Word;
astore 13
start local 13 15: aload 13
iconst_0
invokevirtual org.graalvm.compiler.word.Word.notEqual:(I)Z
ifeq 20
16: aload 5
invokestatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.logging:(Lorg/graalvm/compiler/options/OptionValues;)Z
ifeq 18
17: ldc "newArray: allocated new array at %p\n"
aload 13
invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.printf:(Ljava/lang/String;J)V
18: StackMap locals: org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word
StackMap stack:
aload 0
iload 10
iload 1
iload 8
aload 13
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayPrototypeMarkWord:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)J
invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
checkcast org.graalvm.compiler.word.Word
iload 2
iconst_0
aconst_null
invokestatic org.graalvm.compiler.hotspot.replacements.NewObjectSnippets.formatArray:(Lorg/graalvm/compiler/hotspot/word/KlassPointer;IIILorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;ZZLorg/graalvm/compiler/hotspot/replacements/NewObjectSnippets$Counters;)Ljava/lang/Object;
19: invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.verifyObject:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 13 20: StackMap locals:
StackMap stack:
aload 5
invokestatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.logging:(Lorg/graalvm/compiler/options/OptionValues;)Z
ifeq 22
21: ldc "newArray: calling new_array_c\n"
invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.printf:(Ljava/lang/String;)V
22: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.NEW_ARRAY_C:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
aload 11
aload 0
iload 1
invokestatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.newArrayC:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/hotspot/word/KlassPointer;I)V
23: aload 11
iconst_1
invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.handlePendingException:(Lorg/graalvm/compiler/word/Word;Z)V
24: aload 11
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.getAndClearObjectResult:(Lorg/graalvm/compiler/word/Word;)Ljava/lang/Object;
invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.verifyObject:(Ljava/lang/Object;)Ljava/lang/Object;
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 25 0 hub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
0 25 1 length I
0 25 2 fillContents Z
0 25 3 intArrayHub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
0 25 4 threadRegister Ljdk/vm/ci/code/Register;
0 25 5 options Lorg/graalvm/compiler/options/OptionValues;
1 25 6 layoutHelper I
2 25 7 log2ElementSize I
3 25 8 headerSize I
4 25 9 elementKind I
5 25 10 sizeInBytes I
11 25 11 thread Lorg/graalvm/compiler/word/Word;
12 25 12 inlineContiguousAllocationSupported Z
15 20 13 memory Lorg/graalvm/compiler/word/Word;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
4:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
5:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
hub
length
fillContents
intArrayHub
threadRegister
options
public static native void newArrayC(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, org.graalvm.compiler.word.Word, org.graalvm.compiler.hotspot.word.KlassPointer, int);
descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/hotspot/word/KlassPointer;I)V
flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/hotspot/nodes/StubForeignCallNode;)
RuntimeVisibleParameterAnnotations:
0:
org.graalvm.compiler.graph.Node$ConstantNodeParameter()
1:
2:
3:
MethodParameters:
Name Flags
newArrayC
thread
hub
length
}
SourceFile: "NewArrayStub.java"
InnerClasses:
public abstract ConstantParameter = org.graalvm.compiler.api.replacements.Snippet$ConstantParameter of org.graalvm.compiler.api.replacements.Snippet
public abstract ConstantNodeParameter = org.graalvm.compiler.graph.Node$ConstantNodeParameter of org.graalvm.compiler.graph.Node
public abstract NodeIntrinsic = org.graalvm.compiler.graph.Node$NodeIntrinsic of org.graalvm.compiler.graph.Node
Counters = org.graalvm.compiler.hotspot.replacements.NewObjectSnippets$Counters of org.graalvm.compiler.hotspot.replacements.NewObjectSnippets