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.hotspot.meta.HotSpotProviders, org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage);
descriptor: (Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)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
ldc "newArray"
aload 1
aload 2
invokespecial org.graalvm.compiler.hotspot.stubs.SnippetStub.<init>:(Ljava/lang/String;Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)V
1: return
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 providers Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
0 2 2 linkage Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
MethodParameters:
Name Flags
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:
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
6: 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
7: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/hotspot/stubs/NewArrayStub;
1 8 1 intArrayType Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
2 8 2 count I
3 8 3 args [Ljava/lang/Object;
static boolean logging();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.graalvm.compiler.hotspot.stubs.StubOptions.TraceNewArrayStub:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
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);
descriptor: (Lorg/graalvm/compiler/hotspot/word/KlassPointer;IZLorg/graalvm/compiler/hotspot/word/KlassPointer;Ljdk/vm/ci/code/Register;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=13, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadKlassLayoutHelperIntrinsic:(Lorg/graalvm/compiler/hotspot/word/KlassPointer;)I
istore 5
start local 5 1: iload 5
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.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.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperLog2ElementSizeMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
iand
istore 6
start local 6 2: iload 5
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.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.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperHeaderSizeMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
iand
istore 7
start local 7 3: iload 5
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.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.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperElementTypeMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
iand
istore 8
start local 8 4: iload 1
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.wordSize:()I
iload 7
iload 6
invokestatic jdk.vm.ci.hotspot.HotSpotMetaAccessProvider.computeArrayAllocationSize:(IIII)I
istore 9
start local 9 5: invokestatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.logging:()Z
ifeq 10
6: ldc "newArray: element kind %d\n"
iload 8
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 9
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:()Lorg/graalvm/compiler/word/Pointer;
invokeinterface org.graalvm.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 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 10
start local 10 11: invokestatic org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode.inlineContiguousAllocationSupported:()Z
istore 11
start local 11 12: iload 11
ifeq 19
iload 1
iflt 19
iload 1
ldc 16777215
if_icmpgt 19
13: aload 10
aload 3
iload 9
invokestatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.logging:()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 12
start local 12 14: aload 12
iconst_0
invokevirtual org.graalvm.compiler.word.Word.notEqual:(I)Z
ifeq 19
15: invokestatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.logging:()Z
ifeq 17
16: ldc "newArray: allocated new array at %p\n"
aload 12
invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.printf:(Ljava/lang/String;J)V
17: StackMap locals: org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word
StackMap stack:
aload 0
iload 9
iload 1
iload 7
aload 12
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayPrototypeMarkWord:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)J
invokestatic org.graalvm.compiler.word.Word.unsigned:(J)Lorg/graalvm/compiler/word/Word;
iload 2
iconst_0
iconst_0
invokestatic org.graalvm.compiler.hotspot.replacements.NewObjectSnippets.formatArray:(Lorg/graalvm/compiler/hotspot/word/KlassPointer;IIILorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;ZZZ)Ljava/lang/Object;
18: invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.verifyObject:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 12 19: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.logging:()Z
ifeq 21
20: ldc "newArray: calling new_array_c\n"
invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.printf:(Ljava/lang/String;)V
21: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.hotspot.stubs.NewArrayStub.NEW_ARRAY_C:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
aload 10
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
22: aload 10
iconst_1
invokestatic org.graalvm.compiler.hotspot.stubs.StubUtil.handlePendingException:(Lorg/graalvm/compiler/word/Word;Z)V
23: aload 10
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 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 24 0 hub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
0 24 1 length I
0 24 2 fillContents Z
0 24 3 intArrayHub Lorg/graalvm/compiler/hotspot/word/KlassPointer;
0 24 4 threadRegister Ljdk/vm/ci/code/Register;
1 24 5 layoutHelper I
2 24 6 log2ElementSize I
3 24 7 headerSize I
4 24 8 elementKind I
5 24 9 sizeInBytes I
11 24 10 thread Lorg/graalvm/compiler/word/Word;
12 24 11 inlineContiguousAllocationSupported Z
14 19 12 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()
MethodParameters:
Name Flags
hub
length
fillContents
intArrayHub
threadRegister
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