src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotReturnOp.java
changeset 51228 087c3ba2d138
parent 51126 a25c48c0a1ab
child 59095 03fbcd06b4c0
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotReturnOp.java	Mon Jul 23 14:41:06 2018 -0400
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotReturnOp.java	Mon Jul 23 12:01:43 2018 -0700
@@ -79,6 +79,7 @@
         leaveFrameAndRestoreRbp(crb, masm);
         if (!isStub) {
             if (requiresReservedStackAccessCheck) {
+                assert scratchForSafepointOnReturn != null;
                 HotSpotForeignCallsProvider foreignCalls = (HotSpotForeignCallsProvider) crb.foreignCalls;
 
                 Label noReserved = new Label();
@@ -94,11 +95,11 @@
                 assert cc.getArgumentCount() == 1;
                 Register arg0 = ((RegisterValue) cc.getArgument(0)).getRegister();
                 masm.movq(arg0, thread);
-                AMD64Call.directCall(crb, masm, enableStackReservedZone, null, false, null);
+                AMD64Call.directCall(crb, masm, enableStackReservedZone, scratchForSafepointOnReturn, false, null);
                 if (stackAdjust > 0) {
                     masm.addq(rsp, stackAdjust);
                 }
-                AMD64Call.directJmp(crb, masm, foreignCalls.lookupForeignCall(THROW_DELAYED_STACKOVERFLOW_ERROR));
+                AMD64Call.directJmp(crb, masm, foreignCalls.lookupForeignCall(THROW_DELAYED_STACKOVERFLOW_ERROR), scratchForSafepointOnReturn);
                 masm.bind(noReserved);
             }