src/jdk.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/GraalHotSpotVMConfigNode.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/jdk.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/GraalHotSpotVMConfigNode.java Mon Feb 6 12:01:22 2017
--- new/src/jdk.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/GraalHotSpotVMConfigNode.java Mon Feb 6 12:01:22 2017
*** 1,7 ****
--- 1,7 ----
/*
! * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 53,118 ****
--- 53,142 ----
public static final NodeClass<GraalHotSpotVMConfigNode> TYPE = NodeClass.create(GraalHotSpotVMConfigNode.class);
private final GraalHotSpotVMConfig config;
protected final int markId;
public GraalHotSpotVMConfigNode(@InjectedNodeParameter GraalHotSpotVMConfig config, int markId, JavaKind kind) {
super(TYPE, StampFactory.forKind(kind));
+ /**
+ * Constructor for {@link #areConfigValuesConstant()}.
+ *
+ * @param config
+ */
+ public GraalHotSpotVMConfigNode(@InjectedNodeParameter GraalHotSpotVMConfig config) {
+ super(TYPE, StampFactory.forKind(JavaKind.Boolean));
this.config = config;
! this.markId = markId;
! this.markId = 0;
}
/**
! * Constructor selected by {@link #loadConfigValue(int, JavaKind)}.
! * Constructor for node intrinsics below.
*
* @param config
! * @param markId id of the config value
*/
public GraalHotSpotVMConfigNode(@InjectedNodeParameter GraalHotSpotVMConfig config, int markId) {
! super(TYPE, StampFactory.forKind(JavaKind.Boolean));
! super(TYPE, StampFactory.forNodeIntrinsic());
this.config = config;
! this.markId = 0;
! this.markId = markId;
+ }
+
+ /**
+ * Constructor with explicit type specification.
+ *
+ * @param config
+ * @param markId id of the config value
+ * @param kind explicit type of the node
+ */
+ public GraalHotSpotVMConfigNode(@InjectedNodeParameter GraalHotSpotVMConfig config, int markId, JavaKind kind) {
+ super(TYPE, StampFactory.forKind(kind));
+ this.config = config;
+ this.markId = markId;
}
@Override
public void generate(NodeLIRBuilderTool generator) {
! Value res = ((HotSpotLIRGenerator) generator.getLIRGeneratorTool()).emitLoadConfigValue(markId, generator.getLIRGeneratorTool().getLIRKind(stamp));
generator.setResult(this, res);
}
@NodeIntrinsic
! private static native boolean isConfigValueConstant(@ConstantNodeParameter int markId);
! private static native boolean areConfigValuesConstant();
! @NodeIntrinsic(setStampFromReturnType = true)
! private static native long loadConfigValue(@ConstantNodeParameter int markId, @ConstantNodeParameter JavaKind kind);
! private static native long loadLongConfigValue(@ConstantNodeParameter int markId);
+
+ @NodeIntrinsic(setStampFromReturnType = true)
+ private static native int loadIntConfigValue(@ConstantNodeParameter int markId);
+
+ @NodeIntrinsic(setStampFromReturnType = true)
+ private static native byte loadByteConfigValue(@ConstantNodeParameter int markId);
public static long cardTableAddress() {
! return loadConfigValue(cardTableAddressMark(INJECTED_VMCONFIG), JavaKind.Long);
! return loadLongConfigValue(cardTableAddressMark(INJECTED_VMCONFIG));
}
public static boolean isCardTableAddressConstant() {
! return isConfigValueConstant(cardTableAddressMark(INJECTED_VMCONFIG));
! return areConfigValuesConstant();
}
public static long heapTopAddress() {
! return loadConfigValue(heapTopAddressMark(INJECTED_VMCONFIG), JavaKind.Long);
! return loadLongConfigValue(heapTopAddressMark(INJECTED_VMCONFIG));
}
public static long heapEndAddress() {
! return loadConfigValue(heapEndAddressMark(INJECTED_VMCONFIG), JavaKind.Long);
! return loadLongConfigValue(heapEndAddressMark(INJECTED_VMCONFIG));
}
public static long crcTableAddress() {
! return loadConfigValue(crcTableAddressMark(INJECTED_VMCONFIG), JavaKind.Long);
! return loadLongConfigValue(crcTableAddressMark(INJECTED_VMCONFIG));
}
public static int logOfHeapRegionGrainBytes() {
! return (int) loadConfigValue(logOfHeapRegionGrainBytesMark(INJECTED_VMCONFIG), JavaKind.Byte);
! return loadIntConfigValue(logOfHeapRegionGrainBytesMark(INJECTED_VMCONFIG));
}
public static boolean inlineContiguousAllocationSupported() {
! return loadConfigValue(inlineContiguousAllocationSupportedMark(INJECTED_VMCONFIG), JavaKind.Byte) > 0;
! return loadByteConfigValue(inlineContiguousAllocationSupportedMark(INJECTED_VMCONFIG)) != 0;
}
@Fold
public static int cardTableAddressMark(@InjectedParameter GraalHotSpotVMConfig config) {
return config.MARKID_CARD_TABLE_ADDRESS;
src/jdk.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/GraalHotSpotVMConfigNode.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File