src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java Mon Jul 16 10:58:28 2018 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java Mon Jul 16 15:09:19 2018 -0700
@@ -26,12 +26,15 @@
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
+import java.util.List;
import org.graalvm.compiler.core.common.CompressEncoding;
import org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode;
import jdk.vm.ci.common.JVMCIError;
+import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod;
import jdk.vm.ci.hotspot.HotSpotVMConfigStore;
+import jdk.vm.ci.meta.ResolvedJavaMethod;
/**
* Used to access native configuration details.
@@ -315,6 +318,17 @@
public final int jvmciCountersThreadOffset = getFieldOffset("JavaThread::_jvmci_counters", Integer.class, "jlong*");
public final int javaThreadReservedStackActivationOffset = versioned.javaThreadReservedStackActivationOffset;
+ public boolean requiresReservedStackCheck(List<ResolvedJavaMethod> methods) {
+ if (enableStackReservedZoneAddress != 0 && methods != null) {
+ for (ResolvedJavaMethod method : methods) {
+ if (((HotSpotResolvedJavaMethod) method).hasReservedStackAccess()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
/**
* An invalid value for {@link #rtldDefault}.
*/