8199263: Split interfaceSupport.hpp to not require including .inline.hpp files
Summary: interfaceSupport.hpp is an inline file so moved to interfaceSupport.inline.hpp and stopped including it in .hpp files
Reviewed-by: stefank, rehn, kvn
--- a/make/nb_native/nbproject/configurations.xml Fri Mar 16 08:26:53 2018 -0400
+++ b/make/nb_native/nbproject/configurations.xml Fri Mar 16 09:12:13 2018 -0400
@@ -2480,7 +2480,7 @@
<in>jvmtiClassFileReconstituter.hpp</in>
<in>jvmtiCodeBlobEvents.cpp</in>
<in>jvmtiCodeBlobEvents.hpp</in>
- <in>jvmtiEnter.hpp</in>
+ <in>jvmtiEnter.inline.hpp</in>
<in>jvmtiEnv.cpp</in>
<in>jvmtiEnvBase.cpp</in>
<in>jvmtiEnvBase.hpp</in>
@@ -13398,7 +13398,7 @@
tool="3"
flavor2="0">
</item>
- <item path="../../src/hotspot/share/prims/jvmtiEnter.hpp"
+ <item path="../../src/hotspot/share/prims/jvmtiEnter.inline.hpp"
ex="false"
tool="3"
flavor2="0">
@@ -27175,7 +27175,7 @@
tool="3"
flavor2="0">
</item>
- <item path="../../src/hotspot/share/prims/jvmtiEnter.hpp"
+ <item path="../../src/hotspot/share/prims/jvmtiEnter.inline.hpp"
ex="false"
tool="3"
flavor2="0">
--- a/src/hotspot/cpu/aarch64/assembler_aarch64.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/aarch64/assembler_aarch64.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -36,7 +36,7 @@
#include "compiler/disassembler.hpp"
#include "memory/resourceArea.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/sharedRuntime.hpp"
// for the moment we reuse the logical/floating point immediate encode
--- a/src/hotspot/cpu/aarch64/interpreterRT_aarch64.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/aarch64/interpreterRT_aarch64.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,7 +32,7 @@
#include "oops/oop.inline.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/icache.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/signature.hpp"
#define __ _masm->
--- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -42,7 +42,7 @@
#include "opto/node.hpp"
#include "runtime/biasedLocking.hpp"
#include "runtime/icache.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/thread.hpp"
--- a/src/hotspot/cpu/aarch64/runtime_aarch64.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/aarch64/runtime_aarch64.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,7 @@
#include "code/vmreg.hpp"
#include "interpreter/interpreter.hpp"
#include "opto/runtime.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
#include "runtime/vframeArray.hpp"
--- a/src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -34,6 +34,7 @@
#include "logging/log.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
+#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
#include "utilities/align.hpp"
--- a/src/hotspot/cpu/arm/assembler_arm.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/arm/assembler_arm.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -35,7 +35,7 @@
#include "prims/jvm_misc.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/os.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/cpu/arm/assembler_arm_32.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/arm/assembler_arm_32.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -35,7 +35,7 @@
#include "prims/jvm_misc.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/os.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/cpu/arm/assembler_arm_64.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/arm/assembler_arm_64.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -35,7 +35,7 @@
#include "prims/jvm_misc.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/os.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/cpu/arm/interpreterRT_arm.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/arm/interpreterRT_arm.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,7 @@
#include "oops/oop.inline.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/icache.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/signature.hpp"
#define __ _masm->
--- a/src/hotspot/cpu/arm/macroAssembler_arm.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/arm/macroAssembler_arm.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -37,7 +37,7 @@
#include "oops/klass.inline.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/os.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/cpu/arm/runtime_arm.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/arm/runtime_arm.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,7 +32,7 @@
#include "memory/resourceArea.hpp"
#include "nativeInst_arm.hpp"
#include "opto/runtime.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
#include "runtime/vframeArray.hpp"
--- a/src/hotspot/cpu/ppc/assembler_ppc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/ppc/assembler_ppc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,7 @@
#include "memory/resourceArea.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/os.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/cpu/ppc/interpreterRT_ppc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/ppc/interpreterRT_ppc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -33,7 +33,7 @@
#include "oops/oop.inline.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/icache.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/signature.hpp"
#define __ _masm->
--- a/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -35,7 +35,7 @@
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
#include "runtime/icache.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/os.hpp"
#include "runtime/safepoint.hpp"
--- a/src/hotspot/cpu/ppc/methodHandles_ppc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/ppc/methodHandles_ppc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,6 +31,7 @@
#include "memory/allocation.inline.hpp"
#include "memory/resourceArea.hpp"
#include "prims/methodHandles.hpp"
+#include "utilities/preserveException.hpp"
#define __ _masm->
--- a/src/hotspot/cpu/ppc/runtime_ppc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/ppc/runtime_ppc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -33,7 +33,7 @@
#include "memory/resourceArea.hpp"
#include "nativeInst_ppc.hpp"
#include "opto/runtime.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
#include "runtime/vframeArray.hpp"
--- a/src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -29,10 +29,12 @@
#include "code/icBuffer.hpp"
#include "code/vtableStubs.hpp"
#include "frame_ppc.hpp"
+#include "gc/shared/gcLocker.hpp"
#include "interpreter/interpreter.hpp"
#include "interpreter/interp_masm.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
+#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
#include "utilities/align.hpp"
--- a/src/hotspot/cpu/ppc/templateTable_ppc_64.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/ppc/templateTable_ppc_64.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -34,6 +34,7 @@
#include "oops/objArrayKlass.hpp"
#include "oops/oop.inline.hpp"
#include "prims/methodHandles.hpp"
+#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
#include "runtime/synchronizer.hpp"
--- a/src/hotspot/cpu/s390/assembler_s390.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/s390/assembler_s390.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,7 +32,7 @@
#include "memory/resourceArea.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/os.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/cpu/s390/interpreterRT_s390.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/s390/interpreterRT_s390.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,7 +32,7 @@
#include "oops/oop.inline.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/icache.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/signature.hpp"
// Access macros for Java and C arguments.
--- a/src/hotspot/cpu/s390/macroAssembler_s390.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/s390/macroAssembler_s390.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -41,7 +41,7 @@
#include "registerSaver_s390.hpp"
#include "runtime/biasedLocking.hpp"
#include "runtime/icache.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/os.hpp"
#include "runtime/safepoint.hpp"
--- a/src/hotspot/cpu/s390/methodHandles_s390.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/s390/methodHandles_s390.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,6 +31,7 @@
#include "memory/allocation.inline.hpp"
#include "memory/resourceArea.hpp"
#include "prims/methodHandles.hpp"
+#include "utilities/preserveException.hpp"
#ifdef PRODUCT
#define __ _masm->
--- a/src/hotspot/cpu/s390/runtime_s390.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/s390/runtime_s390.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,7 +32,7 @@
#include "memory/resourceArea.hpp"
#include "nativeInst_s390.hpp"
#include "opto/runtime.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
#include "runtime/vframeArray.hpp"
--- a/src/hotspot/cpu/s390/sharedRuntime_s390.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/s390/sharedRuntime_s390.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -28,11 +28,13 @@
#include "code/debugInfoRec.hpp"
#include "code/icBuffer.hpp"
#include "code/vtableStubs.hpp"
+#include "gc/shared/gcLocker.hpp"
#include "interpreter/interpreter.hpp"
#include "interpreter/interp_masm.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
#include "registerSaver_s390.hpp"
+#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
#include "utilities/align.hpp"
--- a/src/hotspot/cpu/s390/templateTable_s390.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/s390/templateTable_s390.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -33,6 +33,7 @@
#include "oops/objArrayKlass.hpp"
#include "oops/oop.inline.hpp"
#include "prims/methodHandles.hpp"
+#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
#include "runtime/synchronizer.hpp"
--- a/src/hotspot/cpu/sparc/c1_LIRAssembler_sparc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/sparc/c1_LIRAssembler_sparc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -35,6 +35,7 @@
#include "gc/shared/collectedHeap.hpp"
#include "nativeInst_sparc.hpp"
#include "oops/objArrayKlass.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/safepointMechanism.inline.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/cpu/sparc/interpreterRT_sparc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/sparc/interpreterRT_sparc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,7 +32,7 @@
#include "oops/oop.inline.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/icache.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/signature.hpp"
--- a/src/hotspot/cpu/sparc/macroAssembler_sparc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/sparc/macroAssembler_sparc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -35,7 +35,7 @@
#include "oops/klass.inline.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/os.inline.hpp"
--- a/src/hotspot/cpu/sparc/methodHandles_sparc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/sparc/methodHandles_sparc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,6 +31,7 @@
#include "memory/allocation.inline.hpp"
#include "memory/resourceArea.hpp"
#include "prims/methodHandles.hpp"
+#include "utilities/preserveException.hpp"
#define __ _masm->
--- a/src/hotspot/cpu/sparc/runtime_sparc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/sparc/runtime_sparc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,7 @@
#include "memory/resourceArea.hpp"
#include "nativeInst_sparc.hpp"
#include "opto/runtime.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
#include "runtime/vframeArray.hpp"
--- a/src/hotspot/cpu/sparc/sharedRuntime_sparc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/sparc/sharedRuntime_sparc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -27,10 +27,12 @@
#include "code/debugInfoRec.hpp"
#include "code/icBuffer.hpp"
#include "code/vtableStubs.hpp"
+#include "gc/shared/gcLocker.hpp"
#include "interpreter/interpreter.hpp"
#include "logging/log.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
+#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
#include "utilities/align.hpp"
--- a/src/hotspot/cpu/sparc/templateTable_sparc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/sparc/templateTable_sparc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,6 +32,7 @@
#include "oops/objArrayKlass.hpp"
#include "oops/oop.inline.hpp"
#include "prims/methodHandles.hpp"
+#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
#include "runtime/synchronizer.hpp"
--- a/src/hotspot/cpu/x86/assembler_x86.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/x86/assembler_x86.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,6 @@
#include "memory/resourceArea.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
-#include "runtime/interfaceSupport.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/os.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -37,6 +37,7 @@
#include "gc/shared/collectedHeap.hpp"
#include "nativeInst_x86.hpp"
#include "oops/objArrayKlass.hpp"
+#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "vmreg_x86.inline.hpp"
--- a/src/hotspot/cpu/x86/interpreterRT_x86_32.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/x86/interpreterRT_x86_32.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,7 @@
#include "oops/oop.inline.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/icache.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/signature.hpp"
--- a/src/hotspot/cpu/x86/interpreterRT_x86_64.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/x86/interpreterRT_x86_64.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,7 @@
#include "oops/oop.inline.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/icache.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/signature.hpp"
#define __ _masm->
--- a/src/hotspot/cpu/x86/macroAssembler_x86.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/x86/macroAssembler_x86.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -36,7 +36,7 @@
#include "oops/klass.inline.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/os.hpp"
#include "runtime/safepoint.hpp"
--- a/src/hotspot/cpu/x86/methodHandles_x86.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/x86/methodHandles_x86.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,6 +31,7 @@
#include "memory/allocation.inline.hpp"
#include "memory/resourceArea.hpp"
#include "prims/methodHandles.hpp"
+#include "utilities/preserveException.hpp"
#define __ _masm->
--- a/src/hotspot/cpu/x86/runtime_x86_32.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/x86/runtime_x86_32.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,6 @@
#include "interpreter/interpreter.hpp"
#include "memory/resourceArea.hpp"
#include "opto/runtime.hpp"
-#include "runtime/interfaceSupport.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
#include "runtime/vframeArray.hpp"
--- a/src/hotspot/cpu/x86/runtime_x86_64.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/x86/runtime_x86_64.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -30,7 +30,6 @@
#include "code/vmreg.hpp"
#include "interpreter/interpreter.hpp"
#include "opto/runtime.hpp"
-#include "runtime/interfaceSupport.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
#include "runtime/vframeArray.hpp"
--- a/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -28,10 +28,12 @@
#include "code/debugInfoRec.hpp"
#include "code/icBuffer.hpp"
#include "code/vtableStubs.hpp"
+#include "gc/shared/gcLocker.hpp"
#include "interpreter/interpreter.hpp"
#include "logging/log.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
+#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
#include "utilities/align.hpp"
--- a/src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,10 +32,12 @@
#include "code/icBuffer.hpp"
#include "code/nativeInst.hpp"
#include "code/vtableStubs.hpp"
+#include "gc/shared/gcLocker.hpp"
#include "interpreter/interpreter.hpp"
#include "logging/log.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compiledICHolder.hpp"
+#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
#include "utilities/align.hpp"
--- a/src/hotspot/cpu/x86/templateTable_x86.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/x86/templateTable_x86.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -33,6 +33,7 @@
#include "oops/objArrayKlass.hpp"
#include "oops/oop.inline.hpp"
#include "prims/methodHandles.hpp"
+#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
#include "runtime/synchronizer.hpp"
--- a/src/hotspot/cpu/zero/assembler_zero.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/zero/assembler_zero.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,7 @@
#include "memory/resourceArea.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/os.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/cpu/zero/cppInterpreter_zero.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/zero/cppInterpreter_zero.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -41,7 +41,7 @@
#include "runtime/atomic.hpp"
#include "runtime/deoptimization.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/orderAccess.inline.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/cpu/zero/interpreterRT_zero.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/zero/interpreterRT_zero.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,7 +32,7 @@
#include "oops/oop.inline.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/icache.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/signature.hpp"
#include "stack_zero.inline.hpp"
#include "utilities/align.hpp"
--- a/src/hotspot/cpu/zero/sharedRuntime_zero.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/cpu/zero/sharedRuntime_zero.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,6 +31,7 @@
#include "code/vtableStubs.hpp"
#include "interpreter/interpreter.hpp"
#include "oops/compiledICHolder.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vframeArray.hpp"
#include "vmreg_zero.inline.hpp"
--- a/src/hotspot/os/aix/attachListener_aix.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/aix/attachListener_aix.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
*/
#include "precompiled.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/os.inline.hpp"
#include "services/attachListener.hpp"
#include "services/dtraceAttacher.hpp"
--- a/src/hotspot/os/aix/jvm_aix.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/aix/jvm_aix.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -25,7 +25,7 @@
#include "precompiled.hpp"
#include "jvm.h"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/osThread.hpp"
#include <signal.h>
--- a/src/hotspot/os/aix/os_aix.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/aix/os_aix.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -54,7 +54,7 @@
#include "runtime/atomic.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/globals.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os/bsd/attachListener_bsd.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/bsd/attachListener_bsd.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -23,7 +23,7 @@
*/
#include "precompiled.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/os.inline.hpp"
#include "services/attachListener.hpp"
#include "services/dtraceAttacher.hpp"
--- a/src/hotspot/os/bsd/jvm_bsd.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/bsd/jvm_bsd.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "jvm.h"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/osThread.hpp"
#include <signal.h>
--- a/src/hotspot/os/bsd/os_bsd.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/bsd/os_bsd.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -44,7 +44,7 @@
#include "runtime/atomic.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/globals.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os/linux/attachListener_linux.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/linux/attachListener_linux.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -23,7 +23,8 @@
*/
#include "precompiled.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "memory/allocation.inline.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/os.inline.hpp"
#include "services/attachListener.hpp"
#include "services/dtraceAttacher.hpp"
--- a/src/hotspot/os/linux/jvm_linux.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/linux/jvm_linux.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "jvm.h"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/osThread.hpp"
#include <signal.h>
--- a/src/hotspot/os/linux/os_linux.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/linux/os_linux.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -45,7 +45,7 @@
#include "runtime/atomic.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/globals.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/init.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
--- a/src/hotspot/os/posix/os_posix.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/posix/os_posix.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -26,7 +26,7 @@
#include "memory/allocation.inline.hpp"
#include "utilities/globalDefinitions.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/os.hpp"
#include "services/memTracker.hpp"
#include "utilities/align.hpp"
--- a/src/hotspot/os/solaris/attachListener_solaris.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/solaris/attachListener_solaris.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -23,7 +23,7 @@
*/
#include "precompiled.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/os.inline.hpp"
#include "services/attachListener.hpp"
#include "services/dtraceAttacher.hpp"
--- a/src/hotspot/os/solaris/jvm_solaris.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/solaris/jvm_solaris.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "jvm.h"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/osThread.hpp"
#include <signal.h>
--- a/src/hotspot/os/solaris/os_solaris.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/solaris/os_solaris.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -44,7 +44,7 @@
#include "runtime/atomic.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/globals.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os/windows/attachListener_windows.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/windows/attachListener_windows.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -23,7 +23,7 @@
*/
#include "precompiled.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/os.hpp"
#include "services/attachListener.hpp"
#include "services/dtraceAttacher.hpp"
--- a/src/hotspot/os/windows/jvm_windows.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/windows/jvm_windows.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "jvm.h"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/osThread.hpp"
#include <signal.h>
--- a/src/hotspot/os/windows/os_windows.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os/windows/os_windows.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -47,7 +47,7 @@
#include "runtime/atomic.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/globals.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -42,7 +42,7 @@
#include "runtime/arguments.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -39,7 +39,7 @@
#include "runtime/arguments.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/bsd_zero/os_bsd_zero.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/bsd_zero/os_bsd_zero.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -45,7 +45,7 @@
#include "runtime/arguments.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -41,7 +41,7 @@
#include "runtime/arguments.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -39,7 +39,7 @@
#include "runtime/arguments.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -41,7 +41,7 @@
#include "runtime/arguments.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -44,7 +44,7 @@
#include "runtime/arguments.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/linux_sparc/os_linux_sparc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/linux_sparc/os_linux_sparc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -40,7 +40,7 @@
#include "runtime/arguments.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -39,7 +39,7 @@
#include "runtime/arguments.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/linux_zero/os_linux_zero.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/linux_zero/os_linux_zero.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -40,7 +40,7 @@
#include "runtime/arguments.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/solaris_sparc/os_solaris_sparc.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/solaris_sparc/os_solaris_sparc.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -41,7 +41,7 @@
#include "runtime/arguments.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/solaris_x86/os_solaris_x86.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/solaris_x86/os_solaris_x86.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -40,7 +40,7 @@
#include "runtime/atomic.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/os_cpu/windows_x86/os_windows_x86.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/os_cpu/windows_x86/os_windows_x86.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -40,7 +40,7 @@
#include "runtime/arguments.hpp"
#include "runtime/extendedPC.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/share/adlc/main.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/adlc/main.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -228,6 +228,7 @@
AD.addInclude(AD._CPP_file, "opto/regmask.hpp");
AD.addInclude(AD._CPP_file, "opto/runtime.hpp");
AD.addInclude(AD._CPP_file, "runtime/biasedLocking.hpp");
+ AD.addInclude(AD._CPP_file, "runtime/safepointMechanism.hpp");
AD.addInclude(AD._CPP_file, "runtime/sharedRuntime.hpp");
AD.addInclude(AD._CPP_file, "runtime/stubRoutines.hpp");
AD.addInclude(AD._CPP_file, "utilities/growableArray.hpp");
--- a/src/hotspot/share/aot/aotCodeHeap.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/aot/aotCodeHeap.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -25,7 +25,7 @@
#include "aot/aotCodeHeap.hpp"
#include "aot/aotLoader.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "classfile/javaAssertions.hpp"
#include "gc/shared/cardTable.hpp"
#include "gc/shared/cardTableModRefBS.hpp"
@@ -36,6 +36,7 @@
#include "jvmci/jvmciRuntime.hpp"
#include "memory/allocation.inline.hpp"
#include "oops/method.inline.hpp"
+#include "runtime/handles.inline.hpp"
#include "runtime/os.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vm_operations.hpp"
--- a/src/hotspot/share/c1/c1_Compiler.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/c1/c1_Compiler.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -38,7 +38,7 @@
#include "memory/resourceArea.hpp"
#include "prims/nativeLookup.hpp"
#include "runtime/arguments.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "utilities/bitMap.inline.hpp"
--- a/src/hotspot/share/c1/c1_GraphBuilder.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/c1/c1_GraphBuilder.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,6 +32,7 @@
#include "ci/ciField.hpp"
#include "ci/ciKlass.hpp"
#include "ci/ciMemberName.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "compiler/compileBroker.hpp"
#include "interpreter/bytecode.hpp"
#include "memory/resourceArea.hpp"
--- a/src/hotspot/share/c1/c1_LIRAssembler.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/c1/c1_LIRAssembler.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -30,6 +30,7 @@
#include "c1/c1_MacroAssembler.hpp"
#include "c1/c1_ValueStack.hpp"
#include "ci/ciInstance.hpp"
+#include "gc/shared/collectedHeap.hpp"
#include "runtime/os.hpp"
void LIR_Assembler::patching_epilog(PatchingStub* patch, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info) {
--- a/src/hotspot/share/c1/c1_LIRGenerator.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/c1/c1_LIRGenerator.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -36,6 +36,7 @@
#include "ci/ciUtilities.hpp"
#include "gc/shared/cardTable.hpp"
#include "gc/shared/cardTableModRefBS.hpp"
+#include "gc/shared/collectedHeap.hpp"
#include "runtime/arguments.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
--- a/src/hotspot/share/c1/c1_Runtime1.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/c1/c1_Runtime1.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -53,7 +53,7 @@
#include "runtime/atomic.hpp"
#include "runtime/biasedLocking.hpp"
#include "runtime/compilationPolicy.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/threadCritical.hpp"
--- a/src/hotspot/share/ci/ciArray.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciArray.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -27,7 +27,7 @@
#include "ci/ciArrayKlass.hpp"
#include "ci/ciConstant.hpp"
#include "ci/ciKlass.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "oops/objArrayOop.inline.hpp"
#include "oops/oop.inline.hpp"
#include "oops/typeArrayOop.inline.hpp"
--- a/src/hotspot/share/ci/ciBaseObject.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciBaseObject.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -27,7 +27,6 @@
#include "ci/ciClassList.hpp"
#include "memory/allocation.hpp"
-#include "runtime/handles.hpp"
#include "runtime/jniHandles.hpp"
// ciBaseObject
--- a/src/hotspot/share/ci/ciCallSite.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciCallSite.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -25,7 +25,7 @@
#include "precompiled.hpp"
#include "classfile/javaClasses.inline.hpp"
#include "ci/ciCallSite.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
// ciCallSite
--- a/src/hotspot/share/ci/ciConstantPoolCache.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciConstantPoolCache.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "ci/ciConstantPoolCache.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "memory/allocation.hpp"
#include "memory/allocation.inline.hpp"
--- a/src/hotspot/share/ci/ciEnv.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciEnv.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,7 +32,7 @@
#include "ci/ciMethod.hpp"
#include "ci/ciNullObject.hpp"
#include "ci/ciReplay.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "classfile/systemDictionary.hpp"
#include "classfile/vmSymbols.hpp"
#include "code/codeCache.hpp"
--- a/src/hotspot/share/ci/ciExceptionHandler.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciExceptionHandler.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,8 @@
#include "precompiled.hpp"
#include "ci/ciExceptionHandler.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
+#include "runtime/handles.inline.hpp"
// ciExceptionHandler
//
--- a/src/hotspot/share/ci/ciField.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciField.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -25,13 +25,14 @@
#include "precompiled.hpp"
#include "ci/ciField.hpp"
#include "ci/ciInstanceKlass.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "classfile/systemDictionary.hpp"
#include "gc/shared/collectedHeap.inline.hpp"
#include "interpreter/linkResolver.hpp"
#include "memory/universe.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/fieldDescriptor.hpp"
+#include "runtime/handles.inline.hpp"
// ciField
//
--- a/src/hotspot/share/ci/ciField.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciField.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -29,6 +29,7 @@
#include "ci/ciConstant.hpp"
#include "ci/ciFlags.hpp"
#include "ci/ciInstance.hpp"
+#include "ci/ciUtilities.hpp"
// ciField
//
--- a/src/hotspot/share/ci/ciInstance.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciInstance.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -27,7 +27,7 @@
#include "ci/ciField.hpp"
#include "ci/ciInstance.hpp"
#include "ci/ciInstanceKlass.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "classfile/systemDictionary.hpp"
#include "oops/oop.inline.hpp"
--- a/src/hotspot/share/ci/ciInstanceKlass.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciInstanceKlass.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -26,7 +26,7 @@
#include "ci/ciField.hpp"
#include "ci/ciInstance.hpp"
#include "ci/ciInstanceKlass.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "classfile/systemDictionary.hpp"
#include "memory/allocation.hpp"
#include "memory/allocation.inline.hpp"
@@ -34,6 +34,7 @@
#include "oops/oop.inline.hpp"
#include "oops/fieldStreams.hpp"
#include "runtime/fieldDescriptor.hpp"
+#include "runtime/handles.inline.hpp"
#include "runtime/jniHandles.inline.hpp"
// ciInstanceKlass
--- a/src/hotspot/share/ci/ciKlass.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciKlass.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -25,7 +25,7 @@
#include "precompiled.hpp"
#include "ci/ciKlass.hpp"
#include "ci/ciSymbol.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "oops/oop.inline.hpp"
// ciKlass
--- a/src/hotspot/share/ci/ciMemberName.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciMemberName.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -25,7 +25,7 @@
#include "precompiled.hpp"
#include "ci/ciClassList.hpp"
#include "ci/ciMemberName.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "classfile/javaClasses.hpp"
// ------------------------------------------------------------------
--- a/src/hotspot/share/ci/ciMetadata.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciMetadata.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "ci/ciObject.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "gc/shared/collectedHeap.inline.hpp"
// ------------------------------------------------------------------
--- a/src/hotspot/share/ci/ciMethod.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciMethod.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,7 +32,7 @@
#include "ci/ciStreams.hpp"
#include "ci/ciSymbol.hpp"
#include "ci/ciReplay.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "classfile/systemDictionary.hpp"
#include "compiler/abstractCompiler.hpp"
#include "compiler/methodLiveness.hpp"
--- a/src/hotspot/share/ci/ciMethodData.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciMethodData.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -26,7 +26,7 @@
#include "ci/ciMetadata.hpp"
#include "ci/ciMethodData.hpp"
#include "ci/ciReplay.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "memory/allocation.inline.hpp"
#include "memory/resourceArea.hpp"
#include "runtime/deoptimization.hpp"
--- a/src/hotspot/share/ci/ciMethodHandle.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciMethodHandle.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -25,7 +25,7 @@
#include "precompiled.hpp"
#include "ci/ciClassList.hpp"
#include "ci/ciMethodHandle.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "classfile/javaClasses.hpp"
// ------------------------------------------------------------------
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/ci/ciMethodType.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2018, 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.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "ci/ciInstance.hpp"
+#include "ci/ciMethodType.hpp"
+#include "ci/ciUtilities.inline.hpp"
+#include "classfile/javaClasses.hpp"
+
+ciType* ciMethodType::class_to_citype(oop klass_oop) const {
+ if (java_lang_Class::is_primitive(klass_oop)) {
+ BasicType bt = java_lang_Class::primitive_type(klass_oop);
+ return ciType::make(bt);
+ } else {
+ Klass* k = java_lang_Class::as_Klass(klass_oop);
+ return CURRENT_ENV->get_klass(k);
+ }
+}
+
+ciType* ciMethodType::rtype() const {
+ GUARDED_VM_ENTRY(
+ oop rtype = java_lang_invoke_MethodType::rtype(get_oop());
+ return class_to_citype(rtype);
+ )
+}
+
+int ciMethodType::ptype_count() const {
+ GUARDED_VM_ENTRY(return java_lang_invoke_MethodType::ptype_count(get_oop());)
+}
+
+int ciMethodType::ptype_slot_count() const {
+ GUARDED_VM_ENTRY(return java_lang_invoke_MethodType::ptype_slot_count(get_oop());)
+}
+
+ciType* ciMethodType::ptype_at(int index) const {
+ GUARDED_VM_ENTRY(
+ oop ptype = java_lang_invoke_MethodType::ptype(get_oop(), index);
+ return class_to_citype(ptype);
+ )
+}
--- a/src/hotspot/share/ci/ciMethodType.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciMethodType.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -26,23 +26,13 @@
#define SHARE_VM_CI_CIMETHODTYPE_HPP
#include "ci/ciInstance.hpp"
-#include "ci/ciUtilities.hpp"
-#include "classfile/javaClasses.hpp"
// ciMethodType
//
// The class represents a java.lang.invoke.MethodType object.
class ciMethodType : public ciInstance {
private:
- ciType* class_to_citype(oop klass_oop) const {
- if (java_lang_Class::is_primitive(klass_oop)) {
- BasicType bt = java_lang_Class::primitive_type(klass_oop);
- return ciType::make(bt);
- } else {
- Klass* k = java_lang_Class::as_Klass(klass_oop);
- return CURRENT_ENV->get_klass(k);
- }
- }
+ ciType* class_to_citype(oop klass_oop) const;
public:
ciMethodType(instanceHandle h_i) : ciInstance(h_i) {}
@@ -50,27 +40,12 @@
// What kind of ciObject is this?
bool is_method_type() const { return true; }
- ciType* rtype() const {
- GUARDED_VM_ENTRY(
- oop rtype = java_lang_invoke_MethodType::rtype(get_oop());
- return class_to_citype(rtype);
- )
- }
-
- int ptype_count() const {
- GUARDED_VM_ENTRY(return java_lang_invoke_MethodType::ptype_count(get_oop());)
- }
+ ciType* rtype() const;
- int ptype_slot_count() const {
- GUARDED_VM_ENTRY(return java_lang_invoke_MethodType::ptype_slot_count(get_oop());)
- }
+ int ptype_count() const;
+ int ptype_slot_count() const ;
- ciType* ptype_at(int index) const {
- GUARDED_VM_ENTRY(
- oop ptype = java_lang_invoke_MethodType::ptype(get_oop(), index);
- return class_to_citype(ptype);
- )
- }
+ ciType* ptype_at(int index) const;
};
#endif // SHARE_VM_CI_CIMETHODTYPE_HPP
--- a/src/hotspot/share/ci/ciNullObject.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciNullObject.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,6 +24,7 @@
#include "precompiled.hpp"
#include "ci/ciNullObject.hpp"
+#include "ci/ciUtilities.hpp"
// ciNullObject
//
--- a/src/hotspot/share/ci/ciNullObject.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciNullObject.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -27,7 +27,6 @@
#include "ci/ciClassList.hpp"
#include "ci/ciObject.hpp"
-#include "ci/ciUtilities.hpp"
// ciNullObject
//
--- a/src/hotspot/share/ci/ciObjArray.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciObjArray.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -25,7 +25,7 @@
#include "precompiled.hpp"
#include "ci/ciNullObject.hpp"
#include "ci/ciObjArray.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "oops/objArrayOop.inline.hpp"
// ciObjArray
--- a/src/hotspot/share/ci/ciObjArrayKlass.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciObjArrayKlass.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -26,7 +26,7 @@
#include "ci/ciInstanceKlass.hpp"
#include "ci/ciObjArrayKlass.hpp"
#include "ci/ciSymbol.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "oops/objArrayKlass.hpp"
// ciObjArrayKlass
--- a/src/hotspot/share/ci/ciObject.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciObject.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "ci/ciObject.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "gc/shared/collectedHeap.inline.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/jniHandles.inline.hpp"
--- a/src/hotspot/share/ci/ciObjectFactory.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciObjectFactory.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -39,13 +39,14 @@
#include "ci/ciSymbol.hpp"
#include "ci/ciTypeArray.hpp"
#include "ci/ciTypeArrayKlass.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "classfile/javaClasses.inline.hpp"
#include "classfile/systemDictionary.hpp"
#include "gc/shared/collectedHeap.inline.hpp"
#include "memory/allocation.inline.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/fieldType.hpp"
+#include "runtime/handles.inline.hpp"
#include "utilities/macros.hpp"
// ciObjectFactory
--- a/src/hotspot/share/ci/ciReplay.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciReplay.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -28,7 +28,7 @@
#include "ci/ciReplay.hpp"
#include "ci/ciSymbol.hpp"
#include "ci/ciKlass.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "compiler/compileBroker.hpp"
#include "memory/allocation.inline.hpp"
#include "memory/oopFactory.hpp"
--- a/src/hotspot/share/ci/ciSignature.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciSignature.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -25,7 +25,7 @@
#include "precompiled.hpp"
#include "ci/ciMethodType.hpp"
#include "ci/ciSignature.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "memory/allocation.inline.hpp"
#include "memory/resourceArea.hpp"
#include "oops/oop.inline.hpp"
--- a/src/hotspot/share/ci/ciSignature.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciSignature.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -27,6 +27,7 @@
#include "ci/ciClassList.hpp"
#include "ci/ciSymbol.hpp"
+#include "interpreter/bytecodes.hpp"
#include "utilities/globalDefinitions.hpp"
#include "utilities/growableArray.hpp"
--- a/src/hotspot/share/ci/ciStreams.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciStreams.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -27,7 +27,8 @@
#include "ci/ciConstant.hpp"
#include "ci/ciField.hpp"
#include "ci/ciStreams.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
+#include "runtime/handles.inline.hpp"
// ciExceptionHandlerStream
//
--- a/src/hotspot/share/ci/ciSymbol.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciSymbol.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "ci/ciSymbol.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "memory/oopFactory.hpp"
// ------------------------------------------------------------------
--- a/src/hotspot/share/ci/ciType.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciType.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -25,7 +25,7 @@
#include "precompiled.hpp"
#include "ci/ciEnv.hpp"
#include "ci/ciType.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "classfile/systemDictionary.hpp"
#include "memory/resourceArea.hpp"
#include "oops/oop.inline.hpp"
--- a/src/hotspot/share/ci/ciTypeArray.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciTypeArray.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "ci/ciTypeArray.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "oops/typeArrayOop.inline.hpp"
// ciTypeArray
--- a/src/hotspot/share/ci/ciTypeArrayKlass.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciTypeArrayKlass.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "ci/ciTypeArrayKlass.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
// ciTypeArrayKlass
//
--- a/src/hotspot/share/ci/ciUtilities.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciUtilities.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -26,6 +26,7 @@
#include "ci/ciUtilities.hpp"
#include "gc/shared/cardTableModRefBS.hpp"
#include "gc/shared/cardTable.hpp"
+#include "gc/shared/collectedHeap.hpp"
#include "memory/universe.hpp"
// ciUtilities
--- a/src/hotspot/share/ci/ciUtilities.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/ci/ciUtilities.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -26,45 +26,11 @@
#define SHARE_VM_CI_CIUTILITIES_HPP
#include "ci/ciEnv.hpp"
-#include "runtime/interfaceSupport.hpp"
#include "utilities/globalDefinitions.hpp"
// The following routines and definitions are used internally in the
// compiler interface.
-
-// Add a ci native entry wrapper?
-
-// Bring the compilation thread into the VM state.
-#define VM_ENTRY_MARK \
- CompilerThread* thread=CompilerThread::current(); \
- ThreadInVMfromNative __tiv(thread); \
- ResetNoHandleMark rnhm; \
- HandleMarkCleaner __hm(thread); \
- Thread* THREAD = thread; \
- debug_only(VMNativeEntryWrapper __vew;)
-
-
-
-// Bring the compilation thread into the VM state. No handle mark.
-#define VM_QUICK_ENTRY_MARK \
- CompilerThread* thread=CompilerThread::current(); \
- ThreadInVMfromNative __tiv(thread); \
-/* \
- * [TODO] The NoHandleMark line does nothing but declare a function prototype \
- * The NoHandkeMark constructor is NOT executed. If the ()'s are \
- * removed, causes the NoHandleMark assert to trigger. \
- * debug_only(NoHandleMark __hm();) \
- */ \
- Thread* THREAD = thread; \
- debug_only(VMNativeEntryWrapper __vew;)
-
-
-#define EXCEPTION_CONTEXT \
- CompilerThread* thread=CompilerThread::current(); \
- Thread* THREAD = thread;
-
-
#define CURRENT_ENV \
ciEnv::current()
@@ -78,36 +44,6 @@
#define ASSERT_IN_VM \
assert(IS_IN_VM, "must be in vm state");
-#define GUARDED_VM_ENTRY(action) \
- {if (IS_IN_VM) { action } else { VM_ENTRY_MARK; { action }}}
-
-#define GUARDED_VM_QUICK_ENTRY(action) \
- {if (IS_IN_VM) { action } else { VM_QUICK_ENTRY_MARK; { action }}}
-
-// Redefine this later.
-#define KILL_COMPILE_ON_FATAL_(result) \
- THREAD); \
- if (HAS_PENDING_EXCEPTION) { \
- if (PENDING_EXCEPTION->klass() == \
- SystemDictionary::ThreadDeath_klass()) { \
- /* Kill the compilation. */ \
- fatal("unhandled ci exception"); \
- return (result); \
- } \
- CLEAR_PENDING_EXCEPTION; \
- return (result); \
- } \
- (void)(0
-
-#define KILL_COMPILE_ON_ANY \
- THREAD); \
- if (HAS_PENDING_EXCEPTION) { \
- fatal("unhandled ci exception"); \
- CLEAR_PENDING_EXCEPTION; \
- } \
-(void)(0
-
-
inline const char* bool_to_str(bool b) {
return ((b) ? "true" : "false");
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/ci/ciUtilities.inline.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2018, 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.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef SHARE_VM_CI_CIUTILITIES_INLINE_HPP
+#define SHARE_VM_CI_CIUTILITIES_INLINE_HPP
+
+#include "ci/ciUtilities.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
+
+// Add a ci native entry wrapper?
+
+// Bring the compilation thread into the VM state.
+#define VM_ENTRY_MARK \
+ CompilerThread* thread=CompilerThread::current(); \
+ ThreadInVMfromNative __tiv(thread); \
+ ResetNoHandleMark rnhm; \
+ HandleMarkCleaner __hm(thread); \
+ Thread* THREAD = thread; \
+ debug_only(VMNativeEntryWrapper __vew;)
+
+
+
+// Bring the compilation thread into the VM state. No handle mark.
+#define VM_QUICK_ENTRY_MARK \
+ CompilerThread* thread=CompilerThread::current(); \
+ ThreadInVMfromNative __tiv(thread); \
+/* \
+ * [TODO] The NoHandleMark line does nothing but declare a function prototype \
+ * The NoHandkeMark constructor is NOT executed. If the ()'s are \
+ * removed, causes the NoHandleMark assert to trigger. \
+ * debug_only(NoHandleMark __hm();) \
+ */ \
+ Thread* THREAD = thread; \
+ debug_only(VMNativeEntryWrapper __vew;)
+
+
+#define EXCEPTION_CONTEXT \
+ CompilerThread* thread=CompilerThread::current(); \
+ Thread* THREAD = thread;
+
+
+#define GUARDED_VM_ENTRY(action) \
+ {if (IS_IN_VM) { action } else { VM_ENTRY_MARK; { action }}}
+
+#define GUARDED_VM_QUICK_ENTRY(action) \
+ {if (IS_IN_VM) { action } else { VM_QUICK_ENTRY_MARK; { action }}}
+
+// Redefine this later.
+#define KILL_COMPILE_ON_FATAL_(result) \
+ THREAD); \
+ if (HAS_PENDING_EXCEPTION) { \
+ if (PENDING_EXCEPTION->klass() == \
+ SystemDictionary::ThreadDeath_klass()) { \
+ /* Kill the compilation. */ \
+ fatal("unhandled ci exception"); \
+ return (result); \
+ } \
+ CLEAR_PENDING_EXCEPTION; \
+ return (result); \
+ } \
+ (void)(0
+
+#define KILL_COMPILE_ON_ANY \
+ THREAD); \
+ if (HAS_PENDING_EXCEPTION) { \
+ fatal("unhandled ci exception"); \
+ CLEAR_PENDING_EXCEPTION; \
+ } \
+(void)(0
+
+#endif // SHARE_VM_CI_CIUTILITIES_INLINE_HPP
+
--- a/src/hotspot/share/classfile/classLoader.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/classfile/classLoader.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -61,7 +61,7 @@
#include "runtime/handles.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/init.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/os.hpp"
--- a/src/hotspot/share/classfile/javaClasses.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/classfile/javaClasses.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -51,7 +51,7 @@
#include "prims/resolvedMethodTable.hpp"
#include "runtime/fieldDescriptor.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jniHandles.inline.hpp"
--- a/src/hotspot/share/classfile/stackMapTable.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/classfile/stackMapTable.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -144,6 +144,20 @@
str->print_cr(" }");
}
+StackMapReader::StackMapReader(ClassVerifier* v, StackMapStream* stream, char* code_data,
+ int32_t code_len, TRAPS) :
+ _verifier(v), _stream(stream),
+ _code_data(code_data), _code_length(code_len) {
+ methodHandle m = v->method();
+ if (m->has_stackmap_table()) {
+ _cp = constantPoolHandle(THREAD, m->constants());
+ _frame_count = _stream->get_u2(CHECK);
+ } else {
+ // There's no stackmap table present. Frame count and size are 0.
+ _frame_count = 0;
+ }
+}
+
int32_t StackMapReader::chop(
VerificationType* locals, int32_t length, int32_t chops) {
if (locals == NULL) return -1;
--- a/src/hotspot/share/classfile/stackMapTable.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/classfile/stackMapTable.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -142,18 +142,7 @@
public:
// Constructor
StackMapReader(ClassVerifier* v, StackMapStream* stream, char* code_data,
- int32_t code_len, TRAPS) :
- _verifier(v), _stream(stream),
- _code_data(code_data), _code_length(code_len) {
- methodHandle m = v->method();
- if (m->has_stackmap_table()) {
- _cp = constantPoolHandle(THREAD, m->constants());
- _frame_count = _stream->get_u2(CHECK);
- } else {
- // There's no stackmap table present. Frame count and size are 0.
- _frame_count = 0;
- }
- }
+ int32_t code_len, TRAPS);
inline int32_t get_frame_count() const { return _frame_count; }
StackMapFrame* next(StackMapFrame* pre_frame, bool first,
--- a/src/hotspot/share/classfile/verifier.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/classfile/verifier.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -44,7 +44,7 @@
#include "oops/typeArrayOop.hpp"
#include "runtime/fieldDescriptor.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/orderAccess.inline.hpp"
--- a/src/hotspot/share/code/codeBlob.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/code/codeBlob.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -35,7 +35,7 @@
#include "oops/oop.inline.hpp"
#include "prims/forte.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/safepoint.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/share/code/compiledMethod.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/code/compiledMethod.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,6 +31,7 @@
#include "interpreter/bytecode.inline.hpp"
#include "memory/resourceArea.hpp"
#include "oops/method.inline.hpp"
+#include "runtime/handles.inline.hpp"
#include "runtime/mutexLocker.hpp"
CompiledMethod::CompiledMethod(Method* method, const char* name, CompilerType type, const CodeBlobLayout& layout, int frame_complete_offset, int frame_size, ImmutableOopMapSet* oop_maps, bool caller_must_gc_arguments)
--- a/src/hotspot/share/code/debugInfo.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/code/debugInfo.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -28,7 +28,7 @@
#include "code/nmethod.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/thread.hpp"
@@ -121,6 +121,10 @@
// ObjectValue
+void ObjectValue::set_value(oop value) {
+ _value = Handle(Thread::current(), value);
+}
+
void ObjectValue::read_object(DebugInfoReadStream* stream) {
_klass = read_from(stream);
assert(_klass->is_constant_oop(), "should be constant java mirror oop");
--- a/src/hotspot/share/code/debugInfo.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/code/debugInfo.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -128,7 +128,7 @@
Handle value() const { return _value; }
bool is_visited() const { return _visited; }
- void set_value(oop value) { _value = Handle(Thread::current(), value); }
+ void set_value(oop value);
void set_visited(bool visited) { _visited = false; }
// Serialization of debugging information
--- a/src/hotspot/share/code/nmethod.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/code/nmethod.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -36,6 +36,7 @@
#include "compiler/compilerDirectives.hpp"
#include "compiler/directivesParser.hpp"
#include "compiler/disassembler.hpp"
+#include "gc/shared/gcLocker.hpp"
#include "interpreter/bytecode.hpp"
#include "logging/log.hpp"
#include "logging/logStream.hpp"
--- a/src/hotspot/share/compiler/compileBroker.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/compiler/compileBroker.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -47,7 +47,7 @@
#include "runtime/atomic.hpp"
#include "runtime/compilationPolicy.hpp"
#include "runtime/init.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/os.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/share/compiler/compilerDirectives.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/compiler/compilerDirectives.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "ci/ciMethod.hpp"
-#include "ci/ciUtilities.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "compiler/abstractCompiler.hpp"
#include "compiler/compilerDirectives.hpp"
#include "compiler/compilerOracle.hpp"
--- a/src/hotspot/share/compiler/compilerDirectives.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/compiler/compilerDirectives.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -27,7 +27,6 @@
#include "ci/ciMetadata.hpp"
#include "ci/ciMethod.hpp"
-#include "ci/ciUtilities.hpp"
#include "compiler/methodMatcher.hpp"
#include "compiler/compilerOracle.hpp"
#include "utilities/exceptions.hpp"
--- a/src/hotspot/share/gc/cms/concurrentMarkSweepThread.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/gc/cms/concurrentMarkSweepThread.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -30,7 +30,6 @@
#include "gc/shared/gcId.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/init.hpp"
-#include "runtime/interfaceSupport.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/share/gc/cms/vmCMSOperations.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/gc/cms/vmCMSOperations.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,8 @@
#include "gc/shared/gcTimer.hpp"
#include "gc/shared/gcTraceTime.inline.hpp"
#include "gc/shared/isGCActiveMark.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/os.hpp"
#include "utilities/dtrace.hpp"
--- a/src/hotspot/share/gc/g1/vm_operations_g1.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/gc/g1/vm_operations_g1.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,7 @@
#include "gc/shared/gcTimer.hpp"
#include "gc/shared/gcTraceTime.inline.hpp"
#include "gc/shared/isGCActiveMark.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
void VM_G1CollectFull::doit() {
G1CollectedHeap* g1h = G1CollectedHeap::heap();
--- a/src/hotspot/share/gc/shared/concurrentGCThread.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/gc/shared/concurrentGCThread.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -28,7 +28,6 @@
#include "oops/instanceRefKlass.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/init.hpp"
-#include "runtime/interfaceSupport.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/os.hpp"
--- a/src/hotspot/share/gc/shared/vmGCOperations.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/gc/shared/vmGCOperations.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -35,7 +35,6 @@
#include "memory/oopFactory.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/init.hpp"
-#include "runtime/interfaceSupport.hpp"
#include "utilities/dtrace.hpp"
#include "utilities/macros.hpp"
#include "utilities/preserveException.hpp"
--- a/src/hotspot/share/interpreter/bytecodeInterpreter.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/interpreter/bytecodeInterpreter.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -47,7 +47,7 @@
#include "runtime/biasedLocking.hpp"
#include "runtime/frame.inline.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/orderAccess.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/threadCritical.hpp"
--- a/src/hotspot/share/interpreter/interpreterRuntime.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/interpreter/interpreterRuntime.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -55,7 +55,7 @@
#include "runtime/fieldDescriptor.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/icache.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/jfieldIDWorkaround.hpp"
#include "runtime/osThread.hpp"
--- a/src/hotspot/share/interpreter/linkResolver.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/interpreter/linkResolver.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,6 +32,7 @@
#include "classfile/vmSymbols.hpp"
#include "compiler/compileBroker.hpp"
#include "gc/shared/collectedHeap.inline.hpp"
+#include "gc/shared/gcLocker.hpp"
#include "interpreter/bytecode.hpp"
#include "interpreter/interpreterRuntime.hpp"
#include "interpreter/linkResolver.hpp"
--- a/src/hotspot/share/jvmci/compilerRuntime.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/jvmci/compilerRuntime.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -30,7 +30,7 @@
#include "oops/oop.inline.hpp"
#include "runtime/compilationPolicy.hpp"
#include "runtime/deoptimization.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/vframe.hpp"
#include "aot/aotLoader.hpp"
--- a/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -39,6 +39,7 @@
#include "oops/oop.inline.hpp"
#include "oops/objArrayOop.inline.hpp"
#include "oops/typeArrayOop.inline.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/safepointMechanism.inline.hpp"
--- a/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -22,6 +22,7 @@
*/
#include "precompiled.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "classfile/javaClasses.inline.hpp"
#include "code/scopeDesc.hpp"
#include "memory/oopFactory.hpp"
@@ -35,6 +36,7 @@
#include "jvmci/jvmciCompilerToVM.hpp"
#include "jvmci/jvmciCodeInstaller.hpp"
#include "jvmci/jvmciRuntime.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/timerTrace.hpp"
#include "runtime/vframe_hp.hpp"
@@ -98,6 +100,12 @@
return NULL;
}
+Handle JavaArgumentUnboxer::next_arg(BasicType expectedType) {
+ assert(_index < _args->length(), "out of bounds");
+ oop arg=((objArrayOop) (_args))->obj_at(_index++);
+ assert(expectedType == T_OBJECT || java_lang_boxing_object::is_instance(arg, expectedType), "arg type mismatch");
+ return Handle(Thread::current(), arg);
+}
jobjectArray readConfiguration0(JNIEnv *env, TRAPS);
--- a/src/hotspot/share/jvmci/jvmciCompilerToVM.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/jvmci/jvmciCompilerToVM.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -170,12 +170,7 @@
arrayOop _args;
int _index;
- Handle next_arg(BasicType expectedType) {
- assert(_index < _args->length(), "out of bounds");
- oop arg=((objArrayOop) (_args))->obj_at(_index++);
- assert(expectedType == T_OBJECT || java_lang_boxing_object::is_instance(arg, expectedType), "arg type mismatch");
- return Handle(Thread::current(), arg);
- }
+ Handle next_arg(BasicType expectedType);
public:
JavaArgumentUnboxer(Symbol* signature, JavaCallArguments* jca, arrayOop args, bool is_static) : SignatureIterator(signature) {
--- a/src/hotspot/share/jvmci/jvmciRuntime.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/jvmci/jvmciRuntime.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -40,7 +40,7 @@
#include "oops/oop.inline.hpp"
#include "oops/objArrayOop.inline.hpp"
#include "runtime/biasedLocking.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/reflection.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/share/libadt/vectset.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/libadt/vectset.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -25,6 +25,7 @@
#include "precompiled.hpp"
#include "libadt/vectset.hpp"
#include "memory/allocation.inline.hpp"
+#include "memory/arena.hpp"
// Vector Sets - An Abstract Data Type
--- a/src/hotspot/share/memory/metaspace.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/memory/metaspace.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -66,6 +66,7 @@
class PrintCLDMetaspaceInfoClosure;
class SpaceManager;
class VirtualSpaceList;
+class CollectedHeap;
// Metaspaces each have a SpaceManager and allocations
// are done by the SpaceManager. Allocations are done
--- a/src/hotspot/share/oops/constantPool.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/oops/constantPool.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -47,6 +47,7 @@
#include "oops/oop.inline.hpp"
#include "oops/typeArrayOop.inline.hpp"
#include "runtime/fieldType.hpp"
+#include "runtime/handles.inline.hpp"
#include "runtime/init.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/signature.hpp"
--- a/src/hotspot/share/oops/methodData.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/oops/methodData.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -25,6 +25,7 @@
#include "precompiled.hpp"
#include "classfile/systemDictionary.hpp"
#include "compiler/compilerOracle.hpp"
+#include "gc/shared/gcLocker.hpp"
#include "interpreter/bytecode.hpp"
#include "interpreter/bytecodeStream.hpp"
#include "interpreter/linkResolver.hpp"
--- a/src/hotspot/share/opto/library_call.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/opto/library_call.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,6 +24,7 @@
#include "precompiled.hpp"
#include "asm/macroAssembler.hpp"
+#include "ci/ciUtilities.inline.hpp"
#include "classfile/systemDictionary.hpp"
#include "classfile/vmSymbols.hpp"
#include "compiler/compileBroker.hpp"
--- a/src/hotspot/share/opto/macro.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/opto/macro.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,6 +24,7 @@
#include "precompiled.hpp"
#include "compiler/compileLog.hpp"
+#include "gc/shared/collectedHeap.inline.hpp"
#include "libadt/vectset.hpp"
#include "opto/addnode.hpp"
#include "opto/arraycopynode.hpp"
--- a/src/hotspot/share/opto/parse1.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/opto/parse1.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -39,6 +39,7 @@
#include "opto/runtime.hpp"
#include "runtime/arguments.hpp"
#include "runtime/handles.inline.hpp"
+#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
#include "utilities/copy.hpp"
--- a/src/hotspot/share/opto/runtime.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/opto/runtime.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -61,7 +61,7 @@
#include "opto/subnode.hpp"
#include "runtime/atomic.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/signature.hpp"
--- a/src/hotspot/share/precompiled/precompiled.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/precompiled/precompiled.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -54,7 +54,7 @@
# include "ci/ciSymbol.hpp"
# include "ci/ciType.hpp"
# include "ci/ciTypeArrayKlass.hpp"
-# include "ci/ciUtilities.hpp"
+# include "ci/ciUtilities.inline.hpp"
# include "ci/compilerInterface.hpp"
# include "classfile/classFileParser.hpp"
# include "classfile/classFileStream.hpp"
@@ -176,7 +176,7 @@
# include "runtime/handles.inline.hpp"
# include "runtime/icache.hpp"
# include "runtime/init.hpp"
-# include "runtime/interfaceSupport.hpp"
+# include "runtime/interfaceSupport.inline.hpp"
# include "runtime/java.hpp"
# include "runtime/javaCalls.hpp"
# include "runtime/javaFrameAnchor.hpp"
--- a/src/hotspot/share/prims/jni.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jni.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -65,7 +65,7 @@
#include "runtime/compilationPolicy.hpp"
#include "runtime/fieldDescriptor.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jfieldIDWorkaround.hpp"
--- a/src/hotspot/share/prims/jniCheck.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jniCheck.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -36,8 +36,8 @@
#include "prims/jniCheck.hpp"
#include "prims/jvm_misc.hpp"
#include "runtime/fieldDescriptor.hpp"
-#include "runtime/handles.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/jfieldIDWorkaround.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/thread.inline.hpp"
--- a/src/hotspot/share/prims/jvm.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jvm.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -57,7 +57,7 @@
#include "runtime/atomic.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/init.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jfieldIDWorkaround.hpp"
--- a/src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -34,6 +34,19 @@
// FIXME: fix Synthetic attribute
// FIXME: per Serguei, add error return handling for ConstantPool::copy_cpool_bytes()
+JvmtiConstantPoolReconstituter::JvmtiConstantPoolReconstituter(InstanceKlass* ik) {
+ set_error(JVMTI_ERROR_NONE);
+ _ik = ik;
+ _cpool = constantPoolHandle(Thread::current(), ik->constants());
+ _symmap = new SymbolHashMap();
+ _classmap = new SymbolHashMap();
+ _cpool_size = _cpool->hash_entries_to(_symmap, _classmap);
+ if (_cpool_size == 0) {
+ set_error(JVMTI_ERROR_OUT_OF_MEMORY);
+ } else if (_cpool_size < 0) {
+ set_error(JVMTI_ERROR_INTERNAL);
+ }
+}
// Write the field information portion of ClassFile structure
// JVMSpec| u2 fields_count;
--- a/src/hotspot/share/prims/jvmtiClassFileReconstituter.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jvmtiClassFileReconstituter.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -52,19 +52,7 @@
public:
// Calls to this constructor must be proceeded by a ResourceMark
// and a HandleMark
- JvmtiConstantPoolReconstituter(InstanceKlass* ik){
- set_error(JVMTI_ERROR_NONE);
- _ik = ik;
- _cpool = constantPoolHandle(Thread::current(), ik->constants());
- _symmap = new SymbolHashMap();
- _classmap = new SymbolHashMap();
- _cpool_size = _cpool->hash_entries_to(_symmap, _classmap);
- if (_cpool_size == 0) {
- set_error(JVMTI_ERROR_OUT_OF_MEMORY);
- } else if (_cpool_size < 0) {
- set_error(JVMTI_ERROR_INTERNAL);
- }
- }
+ JvmtiConstantPoolReconstituter(InstanceKlass* ik);
~JvmtiConstantPoolReconstituter() {
if (_symmap != NULL) {
--- a/src/hotspot/share/prims/jvmtiEnter.hpp Fri Mar 16 08:26:53 2018 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2003, 2010, 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.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-#ifndef SHARE_VM_PRIMS_JVMTIENTER_HPP
-#define SHARE_VM_PRIMS_JVMTIENTER_HPP
-
-#include "classfile/systemDictionary.hpp"
-#include "jvmtifiles/jvmtiEnv.hpp"
-#include "memory/resourceArea.hpp"
-#include "prims/jvmtiImpl.hpp"
-#include "runtime/interfaceSupport.hpp"
-
-#endif // SHARE_VM_PRIMS_JVMTIENTER_HPP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/prims/jvmtiEnter.inline.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2003, 2010, 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.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef SHARE_VM_PRIMS_JVMTIENTER_INLINE_HPP
+#define SHARE_VM_PRIMS_JVMTIENTER_INLINE_HPP
+
+#include "classfile/systemDictionary.hpp"
+#include "jvmtifiles/jvmtiEnv.hpp"
+#include "memory/resourceArea.hpp"
+#include "prims/jvmtiImpl.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
+
+#endif // SHARE_VM_PRIMS_JVMTIENTER_INLINE_HPP
--- a/src/hotspot/share/prims/jvmtiEnter.xsl Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jvmtiEnter.xsl Fri Mar 16 09:12:13 2018 -0400
@@ -42,7 +42,7 @@
#if INCLUDE_JVMTI
# include "logging/log.hpp"
# include "oops/oop.inline.hpp"
-# include "prims/jvmtiEnter.hpp"
+# include "prims/jvmtiEnter.inline.hpp"
# include "prims/jvmtiRawMonitor.hpp"
# include "prims/jvmtiUtil.hpp"
# include "runtime/threadSMR.hpp"
--- a/src/hotspot/share/prims/jvmtiEnv.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jvmtiEnv.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -55,7 +55,7 @@
#include "prims/jvmtiUtil.hpp"
#include "runtime/arguments.hpp"
#include "runtime/deoptimization.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jfieldIDWorkaround.hpp"
#include "runtime/jniHandles.inline.hpp"
--- a/src/hotspot/share/prims/jvmtiEnvBase.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jvmtiEnvBase.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -38,7 +38,7 @@
#include "prims/jvmtiThreadState.inline.hpp"
#include "runtime/biasedLocking.hpp"
#include "runtime/deoptimization.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/jfieldIDWorkaround.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/objectMonitor.hpp"
--- a/src/hotspot/share/prims/jvmtiEnvThreadState.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jvmtiEnvThreadState.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -32,7 +32,7 @@
#include "prims/jvmtiImpl.hpp"
#include "runtime/handles.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/signature.hpp"
#include "runtime/thread.inline.hpp"
--- a/src/hotspot/share/prims/jvmtiExport.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jvmtiExport.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -48,7 +48,7 @@
#include "prims/jvmtiThreadState.inline.hpp"
#include "runtime/arguments.hpp"
#include "runtime/handles.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/objectMonitor.hpp"
--- a/src/hotspot/share/prims/jvmtiImpl.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jvmtiImpl.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -41,7 +41,7 @@
#include "runtime/deoptimization.hpp"
#include "runtime/handles.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/os.hpp"
#include "runtime/serviceThread.hpp"
--- a/src/hotspot/share/prims/jvmtiRawMonitor.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jvmtiRawMonitor.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -26,7 +26,7 @@
#include "memory/allocation.inline.hpp"
#include "prims/jvmtiRawMonitor.hpp"
#include "runtime/atomic.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/orderAccess.inline.hpp"
#include "runtime/thread.inline.hpp"
--- a/src/hotspot/share/prims/jvmtiUtil.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jvmtiUtil.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -26,7 +26,7 @@
#include "prims/jvmtiUtil.hpp"
#include "runtime/handles.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/vm_operations.hpp"
#include "utilities/exceptions.hpp"
--- a/src/hotspot/share/prims/methodHandles.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/methodHandles.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -39,6 +39,7 @@
#include "oops/typeArrayOop.inline.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/compilationPolicy.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/timerTrace.hpp"
--- a/src/hotspot/share/prims/methodHandles.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/methodHandles.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -29,7 +29,6 @@
#include "classfile/vmSymbols.hpp"
#include "runtime/frame.inline.hpp"
#include "runtime/globals.hpp"
-#include "runtime/interfaceSupport.hpp"
#include "utilities/macros.hpp"
#ifdef ZERO
--- a/src/hotspot/share/prims/perf.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/perf.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -29,7 +29,7 @@
#include "memory/allocation.inline.hpp"
#include "memory/resourceArea.hpp"
#include "oops/oop.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/perfData.inline.hpp"
#include "runtime/perfMemory.hpp"
--- a/src/hotspot/share/prims/unsafe.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/unsafe.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -37,7 +37,7 @@
#include "prims/unsafe.hpp"
#include "runtime/atomic.hpp"
#include "runtime/globals.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/orderAccess.inline.hpp"
#include "runtime/reflection.hpp"
--- a/src/hotspot/share/prims/wbtestmethods/parserTests.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/wbtestmethods/parserTests.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -29,9 +29,9 @@
#include "memory/oopFactory.hpp"
#include "memory/resourceArea.hpp"
#include "oops/objArrayOop.inline.hpp"
-#include "prims/whitebox.hpp"
+#include "prims/whitebox.inline.hpp"
#include "prims/wbtestmethods/parserTests.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "services/diagnosticArgument.hpp"
#include "services/diagnosticFramework.hpp"
--- a/src/hotspot/share/prims/whitebox.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/whitebox.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -47,12 +47,12 @@
#include "oops/oop.inline.hpp"
#include "oops/typeArrayOop.inline.hpp"
#include "prims/wbtestmethods/parserTests.hpp"
-#include "prims/whitebox.hpp"
+#include "prims/whitebox.inline.hpp"
#include "runtime/arguments.hpp"
#include "runtime/compilationPolicy.hpp"
#include "runtime/deoptimization.hpp"
#include "runtime/handshake.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/os.hpp"
@@ -88,6 +88,22 @@
#define SIZE_T_MAX_VALUE ((size_t) -1)
+#define CHECK_JNI_EXCEPTION_(env, value) \
+ do { \
+ JavaThread* THREAD = JavaThread::thread_from_jni_environment(env); \
+ if (HAS_PENDING_EXCEPTION) { \
+ return(value); \
+ } \
+ } while (0)
+
+#define CHECK_JNI_EXCEPTION(env) \
+ do { \
+ JavaThread* THREAD = JavaThread::thread_from_jni_environment(env); \
+ if (HAS_PENDING_EXCEPTION) { \
+ return; \
+ } \
+ } while (0)
+
bool WhiteBox::_used = false;
volatile bool WhiteBox::compilation_locked = false;
--- a/src/hotspot/share/prims/whitebox.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/whitebox.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,8 @@
#include "memory/allocation.hpp"
#include "oops/oopsHierarchy.hpp"
#include "oops/symbol.hpp"
-#include "runtime/interfaceSupport.hpp"
+
+#define WB_METHOD_DECLARE(result_type) extern "C" result_type JNICALL
// Unconditionally clear pedantic pending JNI checks
class ClearPendingJniExcCheck : public StackObj {
@@ -44,30 +45,6 @@
}
};
-// Entry macro to transition from JNI to VM state.
-
-#define WB_ENTRY(result_type, header) JNI_ENTRY(result_type, header) \
- ClearPendingJniExcCheck _clearCheck(env);
-
-#define WB_END JNI_END
-#define WB_METHOD_DECLARE(result_type) extern "C" result_type JNICALL
-
-#define CHECK_JNI_EXCEPTION_(env, value) \
- do { \
- JavaThread* THREAD = JavaThread::thread_from_jni_environment(env); \
- if (HAS_PENDING_EXCEPTION) { \
- return(value); \
- } \
- } while (0)
-
-#define CHECK_JNI_EXCEPTION(env) \
- do { \
- JavaThread* THREAD = JavaThread::thread_from_jni_environment(env); \
- if (HAS_PENDING_EXCEPTION) { \
- return; \
- } \
- } while (0)
-
class CodeBlob;
class CodeHeap;
class JavaThread;
@@ -93,6 +70,4 @@
static bool compile_method(Method* method, int comp_level, int bci, Thread* THREAD);
};
-
-
#endif // SHARE_VM_PRIMS_WHITEBOX_HPP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/prims/whitebox.inline.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2018, 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.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef SHARE_VM_PRIMS_WHITEBOX_INLINE_HPP
+#define SHARE_VM_PRIMS_WHITEBOX_INLINE_HPP
+
+#include "prims/whitebox.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
+
+// Entry macro to transition from JNI to VM state.
+
+#define WB_ENTRY(result_type, header) JNI_ENTRY(result_type, header) \
+ ClearPendingJniExcCheck _clearCheck(env);
+
+#define WB_END JNI_END
+
+#endif // SHARE_VM_PRIMS_WHITEBOX_INLINE_HPP
--- a/src/hotspot/share/runtime/biasedLocking.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/biasedLocking.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,6 +31,7 @@
#include "runtime/atomic.hpp"
#include "runtime/basicLock.hpp"
#include "runtime/biasedLocking.hpp"
+#include "runtime/handles.inline.hpp"
#include "runtime/task.hpp"
#include "runtime/threadSMR.hpp"
#include "runtime/vframe.hpp"
--- a/src/hotspot/share/runtime/deoptimization.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/deoptimization.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -46,7 +46,7 @@
#include "runtime/biasedLocking.hpp"
#include "runtime/compilationPolicy.hpp"
#include "runtime/deoptimization.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/signature.hpp"
#include "runtime/stubRoutines.hpp"
--- a/src/hotspot/share/runtime/fieldDescriptor.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/fieldDescriptor.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -26,6 +26,8 @@
#define SHARE_VM_RUNTIME_FIELDDESCRIPTOR_HPP
#include "oops/constantPool.hpp"
+#include "oops/fieldInfo.hpp"
+#include "oops/instanceKlass.hpp"
#include "oops/symbol.hpp"
#include "runtime/fieldType.hpp"
#include "utilities/accessFlags.hpp"
--- a/src/hotspot/share/runtime/handles.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/handles.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -214,4 +214,4 @@
area->_no_handle_mark_nesting = _no_handle_mark_nesting;
}
-#endif
+#endif // ASSERT
--- a/src/hotspot/share/runtime/handles.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/handles.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -296,4 +296,17 @@
#endif
};
+// The HandleMarkCleaner is a faster version of HandleMark.
+// It relies on the fact that there is a HandleMark further
+// down the stack (in JavaCalls::call_helper), and just resets
+// to the saved values in that HandleMark.
+
+class HandleMarkCleaner: public StackObj {
+ private:
+ Thread* _thread;
+ public:
+ inline HandleMarkCleaner(Thread* thread);
+ inline ~HandleMarkCleaner();
+};
+
#endif // SHARE_VM_RUNTIME_HANDLES_HPP
--- a/src/hotspot/share/runtime/handles.inline.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/handles.inline.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -104,4 +104,13 @@
debug_only(area->_handle_mark_nesting--);
}
+inline HandleMarkCleaner::HandleMarkCleaner(Thread* thread) {
+ _thread = thread;
+ _thread->last_handle_mark()->push();
+}
+
+inline HandleMarkCleaner::~HandleMarkCleaner() {
+ _thread->last_handle_mark()->pop_and_restore();
+}
+
#endif // SHARE_VM_RUNTIME_HANDLES_INLINE_HPP
--- a/src/hotspot/share/runtime/handshake.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/handshake.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -27,7 +27,7 @@
#include "logging/logStream.hpp"
#include "memory/resourceArea.hpp"
#include "runtime/handshake.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/osThread.hpp"
#include "runtime/semaphore.hpp"
#include "runtime/task.hpp"
--- a/src/hotspot/share/runtime/interfaceSupport.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/interfaceSupport.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -28,16 +28,49 @@
#include "gc/shared/genCollectedHeap.hpp"
#include "memory/resourceArea.hpp"
#include "runtime/atomic.hpp"
+#include "runtime/handles.inline.hpp"
#include "runtime/init.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/orderAccess.inline.hpp"
#include "runtime/os.inline.hpp"
+#include "runtime/thread.inline.hpp"
#include "runtime/vframe.hpp"
#include "utilities/preserveException.hpp"
// Implementation of InterfaceSupport
#ifdef ASSERT
+VMEntryWrapper::VMEntryWrapper() {
+ if (VerifyLastFrame) {
+ InterfaceSupport::verify_last_frame();
+ }
+}
+
+VMEntryWrapper::~VMEntryWrapper() {
+ InterfaceSupport::check_gc_alot();
+ if (WalkStackALot) {
+ InterfaceSupport::walk_stack();
+ }
+#ifdef COMPILER2
+ // This option is not used by Compiler 1
+ if (StressDerivedPointers) {
+ InterfaceSupport::stress_derived_pointers();
+ }
+#endif
+ if (DeoptimizeALot || DeoptimizeRandom) {
+ InterfaceSupport::deoptimizeAll();
+ }
+ if (ZombieALot) {
+ InterfaceSupport::zombieAll();
+ }
+ if (UnlinkSymbolsALot) {
+ InterfaceSupport::unlinkSymbols();
+ }
+ // do verification AFTER potential deoptimization
+ if (VerifyStack) {
+ InterfaceSupport::verify_stack();
+ }
+}
long InterfaceSupport::_number_of_calls = 0;
long InterfaceSupport::_scavenge_alot_counter = 1;
--- a/src/hotspot/share/runtime/interfaceSupport.hpp Fri Mar 16 08:26:53 2018 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,623 +0,0 @@
-/*
- * Copyright (c) 1997, 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.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-#ifndef SHARE_VM_RUNTIME_INTERFACESUPPORT_HPP
-#define SHARE_VM_RUNTIME_INTERFACESUPPORT_HPP
-
-#include "gc/shared/gcLocker.hpp"
-#include "runtime/handles.inline.hpp"
-#include "runtime/mutexLocker.hpp"
-#include "runtime/orderAccess.hpp"
-#include "runtime/os.hpp"
-#include "runtime/safepointMechanism.inline.hpp"
-#include "runtime/thread.inline.hpp"
-#include "runtime/vmThread.hpp"
-#include "utilities/globalDefinitions.hpp"
-#include "utilities/macros.hpp"
-#include "utilities/preserveException.hpp"
-
-// Wrapper for all entry points to the virtual machine.
-// The HandleMarkCleaner is a faster version of HandleMark.
-// It relies on the fact that there is a HandleMark further
-// down the stack (in JavaCalls::call_helper), and just resets
-// to the saved values in that HandleMark.
-
-class HandleMarkCleaner: public StackObj {
- private:
- Thread* _thread;
- public:
- HandleMarkCleaner(Thread* thread) {
- _thread = thread;
- _thread->last_handle_mark()->push();
- }
- ~HandleMarkCleaner() {
- _thread->last_handle_mark()->pop_and_restore();
- }
-
- private:
- inline void* operator new(size_t size, void* ptr) throw() {
- return ptr;
- }
-};
-
-// InterfaceSupport provides functionality used by the VM_LEAF_BASE and
-// VM_ENTRY_BASE macros. These macros are used to guard entry points into
-// the VM and perform checks upon leave of the VM.
-
-
-class InterfaceSupport: AllStatic {
-# ifdef ASSERT
- public:
- static long _scavenge_alot_counter;
- static long _fullgc_alot_counter;
- static long _number_of_calls;
- static long _fullgc_alot_invocation;
-
- // Helper methods used to implement +ScavengeALot and +FullGCALot
- static void check_gc_alot() { if (ScavengeALot || FullGCALot) gc_alot(); }
- static void gc_alot();
-
- static void walk_stack_from(vframe* start_vf);
- static void walk_stack();
-
- static void zombieAll();
- static void unlinkSymbols();
- static void deoptimizeAll();
- static void stress_derived_pointers();
- static void verify_stack();
- static void verify_last_frame();
-# endif
-
- public:
- static void serialize_thread_state_with_handler(JavaThread* thread) {
- serialize_thread_state_internal(thread, true);
- }
-
- // Should only call this if we know that we have a proper SEH set up.
- static void serialize_thread_state(JavaThread* thread) {
- serialize_thread_state_internal(thread, false);
- }
-
- private:
- static void serialize_thread_state_internal(JavaThread* thread, bool needs_exception_handler) {
- // Make sure new state is seen by VM thread
- if (os::is_MP()) {
- if (UseMembar) {
- // Force a fence between the write above and read below
- OrderAccess::fence();
- } else {
- // store to serialize page so VM thread can do pseudo remote membar
- if (needs_exception_handler) {
- os::write_memory_serialize_page_with_handler(thread);
- } else {
- os::write_memory_serialize_page(thread);
- }
- }
- }
- }
-};
-
-
-// Basic class for all thread transition classes.
-
-class ThreadStateTransition : public StackObj {
- protected:
- JavaThread* _thread;
- public:
- ThreadStateTransition(JavaThread *thread) {
- _thread = thread;
- assert(thread != NULL && thread->is_Java_thread(), "must be Java thread");
- }
-
- // Change threadstate in a manner, so safepoint can detect changes.
- // Time-critical: called on exit from every runtime routine
- static inline void transition(JavaThread *thread, JavaThreadState from, JavaThreadState to) {
- assert(from != _thread_in_Java, "use transition_from_java");
- assert(from != _thread_in_native, "use transition_from_native");
- assert((from & 1) == 0 && (to & 1) == 0, "odd numbers are transitions states");
- assert(thread->thread_state() == from, "coming from wrong thread state");
- // Change to transition state
- thread->set_thread_state((JavaThreadState)(from + 1));
-
- InterfaceSupport::serialize_thread_state(thread);
-
- SafepointMechanism::block_if_requested(thread);
- thread->set_thread_state(to);
-
- CHECK_UNHANDLED_OOPS_ONLY(thread->clear_unhandled_oops();)
- }
-
- // transition_and_fence must be used on any thread state transition
- // where there might not be a Java call stub on the stack, in
- // particular on Windows where the Structured Exception Handler is
- // set up in the call stub. os::write_memory_serialize_page() can
- // fault and we can't recover from it on Windows without a SEH in
- // place.
- static inline void transition_and_fence(JavaThread *thread, JavaThreadState from, JavaThreadState to) {
- assert(thread->thread_state() == from, "coming from wrong thread state");
- assert((from & 1) == 0 && (to & 1) == 0, "odd numbers are transitions states");
- // Change to transition state
- thread->set_thread_state((JavaThreadState)(from + 1));
-
- InterfaceSupport::serialize_thread_state_with_handler(thread);
-
- SafepointMechanism::block_if_requested(thread);
- thread->set_thread_state(to);
-
- CHECK_UNHANDLED_OOPS_ONLY(thread->clear_unhandled_oops();)
- }
-
- // Same as above, but assumes from = _thread_in_Java. This is simpler, since we
- // never block on entry to the VM. This will break the code, since e.g. preserve arguments
- // have not been setup.
- static inline void transition_from_java(JavaThread *thread, JavaThreadState to) {
- assert(thread->thread_state() == _thread_in_Java, "coming from wrong thread state");
- thread->set_thread_state(to);
- }
-
- static inline void transition_from_native(JavaThread *thread, JavaThreadState to) {
- assert((to & 1) == 0, "odd numbers are transitions states");
- assert(thread->thread_state() == _thread_in_native, "coming from wrong thread state");
- // Change to transition state
- thread->set_thread_state(_thread_in_native_trans);
-
- InterfaceSupport::serialize_thread_state_with_handler(thread);
-
- // We never install asynchronous exceptions when coming (back) in
- // to the runtime from native code because the runtime is not set
- // up to handle exceptions floating around at arbitrary points.
- if (SafepointMechanism::poll(thread) || thread->is_suspend_after_native()) {
- JavaThread::check_safepoint_and_suspend_for_native_trans(thread);
-
- // Clear unhandled oops anywhere where we could block, even if we don't.
- CHECK_UNHANDLED_OOPS_ONLY(thread->clear_unhandled_oops();)
- }
-
- thread->set_thread_state(to);
- }
- protected:
- void trans(JavaThreadState from, JavaThreadState to) { transition(_thread, from, to); }
- void trans_from_java(JavaThreadState to) { transition_from_java(_thread, to); }
- void trans_from_native(JavaThreadState to) { transition_from_native(_thread, to); }
- void trans_and_fence(JavaThreadState from, JavaThreadState to) { transition_and_fence(_thread, from, to); }
-};
-
-class ThreadInVMForHandshake : public ThreadStateTransition {
- const JavaThreadState _original_state;
-
- void transition_back() {
- // This can be invoked from transition states and must return to the original state properly
- assert(_thread->thread_state() == _thread_in_vm, "should only call when leaving VM after handshake");
- _thread->set_thread_state(_thread_in_vm_trans);
-
- InterfaceSupport::serialize_thread_state(_thread);
-
- SafepointMechanism::block_if_requested(_thread);
-
- _thread->set_thread_state(_original_state);
- }
-
- public:
-
- ThreadInVMForHandshake(JavaThread* thread) : ThreadStateTransition(thread),
- _original_state(thread->thread_state()) {
-
- if (thread->has_last_Java_frame()) {
- thread->frame_anchor()->make_walkable(thread);
- }
-
- thread->set_thread_state(_thread_in_vm);
- }
-
- ~ThreadInVMForHandshake() {
- transition_back();
- }
-
-};
-
-class ThreadInVMfromJava : public ThreadStateTransition {
- public:
- ThreadInVMfromJava(JavaThread* thread) : ThreadStateTransition(thread) {
- trans_from_java(_thread_in_vm);
- }
- ~ThreadInVMfromJava() {
- if (_thread->stack_yellow_reserved_zone_disabled()) {
- _thread->enable_stack_yellow_reserved_zone();
- }
- trans(_thread_in_vm, _thread_in_Java);
- // Check for pending. async. exceptions or suspends.
- if (_thread->has_special_runtime_exit_condition()) _thread->handle_special_runtime_exit_condition();
- }
-};
-
-
-class ThreadInVMfromUnknown {
- private:
- JavaThread* _thread;
- public:
- ThreadInVMfromUnknown() : _thread(NULL) {
- Thread* t = Thread::current();
- if (t->is_Java_thread()) {
- JavaThread* t2 = (JavaThread*) t;
- if (t2->thread_state() == _thread_in_native) {
- _thread = t2;
- ThreadStateTransition::transition_from_native(t2, _thread_in_vm);
- // Used to have a HandleMarkCleaner but that is dangerous as
- // it could free a handle in our (indirect, nested) caller.
- // We expect any handles will be short lived and figure we
- // don't need an actual HandleMark.
- }
- }
- }
- ~ThreadInVMfromUnknown() {
- if (_thread) {
- ThreadStateTransition::transition_and_fence(_thread, _thread_in_vm, _thread_in_native);
- }
- }
-};
-
-
-class ThreadInVMfromNative : public ThreadStateTransition {
- public:
- ThreadInVMfromNative(JavaThread* thread) : ThreadStateTransition(thread) {
- trans_from_native(_thread_in_vm);
- }
- ~ThreadInVMfromNative() {
- trans_and_fence(_thread_in_vm, _thread_in_native);
- }
-};
-
-
-class ThreadToNativeFromVM : public ThreadStateTransition {
- public:
- ThreadToNativeFromVM(JavaThread *thread) : ThreadStateTransition(thread) {
- // We are leaving the VM at this point and going directly to native code.
- // Block, if we are in the middle of a safepoint synchronization.
- assert(!thread->owns_locks(), "must release all locks when leaving VM");
- thread->frame_anchor()->make_walkable(thread);
- trans_and_fence(_thread_in_vm, _thread_in_native);
- // Check for pending. async. exceptions or suspends.
- if (_thread->has_special_runtime_exit_condition()) _thread->handle_special_runtime_exit_condition(false);
- }
-
- ~ThreadToNativeFromVM() {
- trans_from_native(_thread_in_vm);
- assert(!_thread->is_pending_jni_exception_check(), "Pending JNI Exception Check");
- // We don't need to clear_walkable because it will happen automagically when we return to java
- }
-};
-
-
-class ThreadBlockInVM : public ThreadStateTransition {
- public:
- ThreadBlockInVM(JavaThread *thread)
- : ThreadStateTransition(thread) {
- // Once we are blocked vm expects stack to be walkable
- thread->frame_anchor()->make_walkable(thread);
- trans_and_fence(_thread_in_vm, _thread_blocked);
- }
- ~ThreadBlockInVM() {
- trans_and_fence(_thread_blocked, _thread_in_vm);
- // We don't need to clear_walkable because it will happen automagically when we return to java
- }
-};
-
-
-// This special transition class is only used to prevent asynchronous exceptions
-// from being installed on vm exit in situations where we can't tolerate them.
-// See bugs: 4324348, 4854693, 4998314, 5040492, 5050705.
-class ThreadInVMfromJavaNoAsyncException : public ThreadStateTransition {
- public:
- ThreadInVMfromJavaNoAsyncException(JavaThread* thread) : ThreadStateTransition(thread) {
- trans_from_java(_thread_in_vm);
- }
- ~ThreadInVMfromJavaNoAsyncException() {
- if (_thread->stack_yellow_reserved_zone_disabled()) {
- _thread->enable_stack_yellow_reserved_zone();
- }
- trans(_thread_in_vm, _thread_in_Java);
- // NOTE: We do not check for pending. async. exceptions.
- // If we did and moved the pending async exception over into the
- // pending exception field, we would need to deopt (currently C2
- // only). However, to do so would require that we transition back
- // to the _thread_in_vm state. Instead we postpone the handling of
- // the async exception.
-
-
- // Check for pending. suspends only.
- if (_thread->has_special_runtime_exit_condition())
- _thread->handle_special_runtime_exit_condition(false);
- }
-};
-
-// Debug class instantiated in JRT_ENTRY and ITR_ENTRY macro.
-// Can be used to verify properties on enter/exit of the VM.
-
-#ifdef ASSERT
-class VMEntryWrapper {
- public:
- VMEntryWrapper() {
- if (VerifyLastFrame) {
- InterfaceSupport::verify_last_frame();
- }
- }
-
- ~VMEntryWrapper() {
- InterfaceSupport::check_gc_alot();
- if (WalkStackALot) {
- InterfaceSupport::walk_stack();
- }
-#ifdef COMPILER2
- // This option is not used by Compiler 1
- if (StressDerivedPointers) {
- InterfaceSupport::stress_derived_pointers();
- }
-#endif
- if (DeoptimizeALot || DeoptimizeRandom) {
- InterfaceSupport::deoptimizeAll();
- }
- if (ZombieALot) {
- InterfaceSupport::zombieAll();
- }
- if (UnlinkSymbolsALot) {
- InterfaceSupport::unlinkSymbols();
- }
- // do verification AFTER potential deoptimization
- if (VerifyStack) {
- InterfaceSupport::verify_stack();
- }
-
- }
-};
-
-
-class VMNativeEntryWrapper {
- public:
- VMNativeEntryWrapper() {
- if (GCALotAtAllSafepoints) InterfaceSupport::check_gc_alot();
- }
-
- ~VMNativeEntryWrapper() {
- if (GCALotAtAllSafepoints) InterfaceSupport::check_gc_alot();
- }
-};
-
-#endif
-
-
-// VM-internal runtime interface support
-
-#ifdef ASSERT
-
-class RuntimeHistogramElement : public HistogramElement {
- public:
- RuntimeHistogramElement(const char* name);
-};
-
-#define TRACE_CALL(result_type, header) \
- InterfaceSupport::_number_of_calls++; \
- if (CountRuntimeCalls) { \
- static RuntimeHistogramElement* e = new RuntimeHistogramElement(#header); \
- if (e != NULL) e->increment_count(); \
- }
-#else
-#define TRACE_CALL(result_type, header) \
- /* do nothing */
-#endif
-
-
-// LEAF routines do not lock, GC or throw exceptions
-
-#define VM_LEAF_BASE(result_type, header) \
- TRACE_CALL(result_type, header) \
- debug_only(NoHandleMark __hm;) \
- os::verify_stack_alignment(); \
- /* begin of body */
-
-#define VM_ENTRY_BASE_FROM_LEAF(result_type, header, thread) \
- TRACE_CALL(result_type, header) \
- debug_only(ResetNoHandleMark __rnhm;) \
- HandleMarkCleaner __hm(thread); \
- Thread* THREAD = thread; \
- os::verify_stack_alignment(); \
- /* begin of body */
-
-
-// ENTRY routines may lock, GC and throw exceptions
-
-#define VM_ENTRY_BASE(result_type, header, thread) \
- TRACE_CALL(result_type, header) \
- HandleMarkCleaner __hm(thread); \
- Thread* THREAD = thread; \
- os::verify_stack_alignment(); \
- /* begin of body */
-
-
-// QUICK_ENTRY routines behave like ENTRY but without a handle mark
-
-#define VM_QUICK_ENTRY_BASE(result_type, header, thread) \
- TRACE_CALL(result_type, header) \
- debug_only(NoHandleMark __hm;) \
- Thread* THREAD = thread; \
- os::verify_stack_alignment(); \
- /* begin of body */
-
-
-// Definitions for IRT (Interpreter Runtime)
-// (thread is an argument passed in to all these routines)
-
-#define IRT_ENTRY(result_type, header) \
- result_type header { \
- ThreadInVMfromJava __tiv(thread); \
- VM_ENTRY_BASE(result_type, header, thread) \
- debug_only(VMEntryWrapper __vew;)
-
-
-#define IRT_LEAF(result_type, header) \
- result_type header { \
- VM_LEAF_BASE(result_type, header) \
- debug_only(NoSafepointVerifier __nspv(true);)
-
-
-#define IRT_ENTRY_NO_ASYNC(result_type, header) \
- result_type header { \
- ThreadInVMfromJavaNoAsyncException __tiv(thread); \
- VM_ENTRY_BASE(result_type, header, thread) \
- debug_only(VMEntryWrapper __vew;)
-
-#define IRT_END }
-
-
-// Definitions for JRT (Java (Compiler/Shared) Runtime)
-
-#define JRT_ENTRY(result_type, header) \
- result_type header { \
- ThreadInVMfromJava __tiv(thread); \
- VM_ENTRY_BASE(result_type, header, thread) \
- debug_only(VMEntryWrapper __vew;)
-
-
-#define JRT_LEAF(result_type, header) \
- result_type header { \
- VM_LEAF_BASE(result_type, header) \
- debug_only(JRTLeafVerifier __jlv;)
-
-
-#define JRT_ENTRY_NO_ASYNC(result_type, header) \
- result_type header { \
- ThreadInVMfromJavaNoAsyncException __tiv(thread); \
- VM_ENTRY_BASE(result_type, header, thread) \
- debug_only(VMEntryWrapper __vew;)
-
-// Same as JRT Entry but allows for return value after the safepoint
-// to get back into Java from the VM
-#define JRT_BLOCK_ENTRY(result_type, header) \
- result_type header { \
- TRACE_CALL(result_type, header) \
- HandleMarkCleaner __hm(thread);
-
-#define JRT_BLOCK \
- { \
- ThreadInVMfromJava __tiv(thread); \
- Thread* THREAD = thread; \
- debug_only(VMEntryWrapper __vew;)
-
-#define JRT_BLOCK_NO_ASYNC \
- { \
- ThreadInVMfromJavaNoAsyncException __tiv(thread); \
- Thread* THREAD = thread; \
- debug_only(VMEntryWrapper __vew;)
-
-#define JRT_BLOCK_END }
-
-#define JRT_END }
-
-// Definitions for JNI
-
-#define JNI_ENTRY(result_type, header) \
- JNI_ENTRY_NO_PRESERVE(result_type, header) \
- WeakPreserveExceptionMark __wem(thread);
-
-#define JNI_ENTRY_NO_PRESERVE(result_type, header) \
-extern "C" { \
- result_type JNICALL header { \
- JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
- assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
- ThreadInVMfromNative __tiv(thread); \
- debug_only(VMNativeEntryWrapper __vew;) \
- VM_ENTRY_BASE(result_type, header, thread)
-
-
-// Ensure that the VMNativeEntryWrapper constructor, which can cause
-// a GC, is called outside the NoHandleMark (set via VM_QUICK_ENTRY_BASE).
-#define JNI_QUICK_ENTRY(result_type, header) \
-extern "C" { \
- result_type JNICALL header { \
- JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
- assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
- ThreadInVMfromNative __tiv(thread); \
- debug_only(VMNativeEntryWrapper __vew;) \
- VM_QUICK_ENTRY_BASE(result_type, header, thread)
-
-
-#define JNI_LEAF(result_type, header) \
-extern "C" { \
- result_type JNICALL header { \
- JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
- assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
- VM_LEAF_BASE(result_type, header)
-
-
-// Close the routine and the extern "C"
-#define JNI_END } }
-
-
-
-// Definitions for JVM
-
-#define JVM_ENTRY(result_type, header) \
-extern "C" { \
- result_type JNICALL header { \
- JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
- ThreadInVMfromNative __tiv(thread); \
- debug_only(VMNativeEntryWrapper __vew;) \
- VM_ENTRY_BASE(result_type, header, thread)
-
-
-#define JVM_ENTRY_NO_ENV(result_type, header) \
-extern "C" { \
- result_type JNICALL header { \
- JavaThread* thread = JavaThread::current(); \
- ThreadInVMfromNative __tiv(thread); \
- debug_only(VMNativeEntryWrapper __vew;) \
- VM_ENTRY_BASE(result_type, header, thread)
-
-
-#define JVM_QUICK_ENTRY(result_type, header) \
-extern "C" { \
- result_type JNICALL header { \
- JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
- ThreadInVMfromNative __tiv(thread); \
- debug_only(VMNativeEntryWrapper __vew;) \
- VM_QUICK_ENTRY_BASE(result_type, header, thread)
-
-
-#define JVM_LEAF(result_type, header) \
-extern "C" { \
- result_type JNICALL header { \
- VM_Exit::block_if_vm_exited(); \
- VM_LEAF_BASE(result_type, header)
-
-
-#define JVM_ENTRY_FROM_LEAF(env, result_type, header) \
- { { \
- JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
- ThreadInVMfromNative __tiv(thread); \
- debug_only(VMNativeEntryWrapper __vew;) \
- VM_ENTRY_BASE_FROM_LEAF(result_type, header, thread)
-
-
-#define JVM_END } }
-
-#endif // SHARE_VM_RUNTIME_INTERFACESUPPORT_HPP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/runtime/interfaceSupport.inline.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -0,0 +1,571 @@
+/*
+ * Copyright (c) 1997, 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.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef SHARE_VM_RUNTIME_INTERFACESUPPORT_INLINE_HPP
+#define SHARE_VM_RUNTIME_INTERFACESUPPORT_INLINE_HPP
+
+#include "gc/shared/gcLocker.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/orderAccess.hpp"
+#include "runtime/os.hpp"
+#include "runtime/safepointMechanism.inline.hpp"
+#include "runtime/thread.hpp"
+#include "runtime/vm_operations.hpp"
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+#include "utilities/preserveException.hpp"
+
+// Wrapper for all entry points to the virtual machine.
+
+// InterfaceSupport provides functionality used by the VM_LEAF_BASE and
+// VM_ENTRY_BASE macros. These macros are used to guard entry points into
+// the VM and perform checks upon leave of the VM.
+
+
+class InterfaceSupport: AllStatic {
+# ifdef ASSERT
+ public:
+ static long _scavenge_alot_counter;
+ static long _fullgc_alot_counter;
+ static long _number_of_calls;
+ static long _fullgc_alot_invocation;
+
+ // Helper methods used to implement +ScavengeALot and +FullGCALot
+ static void check_gc_alot() { if (ScavengeALot || FullGCALot) gc_alot(); }
+ static void gc_alot();
+
+ static void walk_stack_from(vframe* start_vf);
+ static void walk_stack();
+
+ static void zombieAll();
+ static void unlinkSymbols();
+ static void deoptimizeAll();
+ static void stress_derived_pointers();
+ static void verify_stack();
+ static void verify_last_frame();
+# endif
+
+ public:
+ static void serialize_thread_state_with_handler(JavaThread* thread) {
+ serialize_thread_state_internal(thread, true);
+ }
+
+ // Should only call this if we know that we have a proper SEH set up.
+ static void serialize_thread_state(JavaThread* thread) {
+ serialize_thread_state_internal(thread, false);
+ }
+
+ private:
+ static void serialize_thread_state_internal(JavaThread* thread, bool needs_exception_handler) {
+ // Make sure new state is seen by VM thread
+ if (os::is_MP()) {
+ if (UseMembar) {
+ // Force a fence between the write above and read below
+ OrderAccess::fence();
+ } else {
+ // store to serialize page so VM thread can do pseudo remote membar
+ if (needs_exception_handler) {
+ os::write_memory_serialize_page_with_handler(thread);
+ } else {
+ os::write_memory_serialize_page(thread);
+ }
+ }
+ }
+ }
+};
+
+
+// Basic class for all thread transition classes.
+
+class ThreadStateTransition : public StackObj {
+ protected:
+ JavaThread* _thread;
+ public:
+ ThreadStateTransition(JavaThread *thread) {
+ _thread = thread;
+ assert(thread != NULL && thread->is_Java_thread(), "must be Java thread");
+ }
+
+ // Change threadstate in a manner, so safepoint can detect changes.
+ // Time-critical: called on exit from every runtime routine
+ static inline void transition(JavaThread *thread, JavaThreadState from, JavaThreadState to) {
+ assert(from != _thread_in_Java, "use transition_from_java");
+ assert(from != _thread_in_native, "use transition_from_native");
+ assert((from & 1) == 0 && (to & 1) == 0, "odd numbers are transitions states");
+ assert(thread->thread_state() == from, "coming from wrong thread state");
+ // Change to transition state
+ thread->set_thread_state((JavaThreadState)(from + 1));
+
+ InterfaceSupport::serialize_thread_state(thread);
+
+ SafepointMechanism::block_if_requested(thread);
+ thread->set_thread_state(to);
+
+ CHECK_UNHANDLED_OOPS_ONLY(thread->clear_unhandled_oops();)
+ }
+
+ // transition_and_fence must be used on any thread state transition
+ // where there might not be a Java call stub on the stack, in
+ // particular on Windows where the Structured Exception Handler is
+ // set up in the call stub. os::write_memory_serialize_page() can
+ // fault and we can't recover from it on Windows without a SEH in
+ // place.
+ static inline void transition_and_fence(JavaThread *thread, JavaThreadState from, JavaThreadState to) {
+ assert(thread->thread_state() == from, "coming from wrong thread state");
+ assert((from & 1) == 0 && (to & 1) == 0, "odd numbers are transitions states");
+ // Change to transition state
+ thread->set_thread_state((JavaThreadState)(from + 1));
+
+ InterfaceSupport::serialize_thread_state_with_handler(thread);
+
+ SafepointMechanism::block_if_requested(thread);
+ thread->set_thread_state(to);
+
+ CHECK_UNHANDLED_OOPS_ONLY(thread->clear_unhandled_oops();)
+ }
+
+ // Same as above, but assumes from = _thread_in_Java. This is simpler, since we
+ // never block on entry to the VM. This will break the code, since e.g. preserve arguments
+ // have not been setup.
+ static inline void transition_from_java(JavaThread *thread, JavaThreadState to) {
+ assert(thread->thread_state() == _thread_in_Java, "coming from wrong thread state");
+ thread->set_thread_state(to);
+ }
+
+ static inline void transition_from_native(JavaThread *thread, JavaThreadState to) {
+ assert((to & 1) == 0, "odd numbers are transitions states");
+ assert(thread->thread_state() == _thread_in_native, "coming from wrong thread state");
+ // Change to transition state
+ thread->set_thread_state(_thread_in_native_trans);
+
+ InterfaceSupport::serialize_thread_state_with_handler(thread);
+
+ // We never install asynchronous exceptions when coming (back) in
+ // to the runtime from native code because the runtime is not set
+ // up to handle exceptions floating around at arbitrary points.
+ if (SafepointMechanism::poll(thread) || thread->is_suspend_after_native()) {
+ JavaThread::check_safepoint_and_suspend_for_native_trans(thread);
+
+ // Clear unhandled oops anywhere where we could block, even if we don't.
+ CHECK_UNHANDLED_OOPS_ONLY(thread->clear_unhandled_oops();)
+ }
+
+ thread->set_thread_state(to);
+ }
+ protected:
+ void trans(JavaThreadState from, JavaThreadState to) { transition(_thread, from, to); }
+ void trans_from_java(JavaThreadState to) { transition_from_java(_thread, to); }
+ void trans_from_native(JavaThreadState to) { transition_from_native(_thread, to); }
+ void trans_and_fence(JavaThreadState from, JavaThreadState to) { transition_and_fence(_thread, from, to); }
+};
+
+class ThreadInVMForHandshake : public ThreadStateTransition {
+ const JavaThreadState _original_state;
+
+ void transition_back() {
+ // This can be invoked from transition states and must return to the original state properly
+ assert(_thread->thread_state() == _thread_in_vm, "should only call when leaving VM after handshake");
+ _thread->set_thread_state(_thread_in_vm_trans);
+
+ InterfaceSupport::serialize_thread_state(_thread);
+
+ SafepointMechanism::block_if_requested(_thread);
+
+ _thread->set_thread_state(_original_state);
+ }
+
+ public:
+
+ ThreadInVMForHandshake(JavaThread* thread) : ThreadStateTransition(thread),
+ _original_state(thread->thread_state()) {
+
+ if (thread->has_last_Java_frame()) {
+ thread->frame_anchor()->make_walkable(thread);
+ }
+
+ thread->set_thread_state(_thread_in_vm);
+ }
+
+ ~ThreadInVMForHandshake() {
+ transition_back();
+ }
+
+};
+
+class ThreadInVMfromJava : public ThreadStateTransition {
+ public:
+ ThreadInVMfromJava(JavaThread* thread) : ThreadStateTransition(thread) {
+ trans_from_java(_thread_in_vm);
+ }
+ ~ThreadInVMfromJava() {
+ if (_thread->stack_yellow_reserved_zone_disabled()) {
+ _thread->enable_stack_yellow_reserved_zone();
+ }
+ trans(_thread_in_vm, _thread_in_Java);
+ // Check for pending. async. exceptions or suspends.
+ if (_thread->has_special_runtime_exit_condition()) _thread->handle_special_runtime_exit_condition();
+ }
+};
+
+
+class ThreadInVMfromUnknown {
+ private:
+ JavaThread* _thread;
+ public:
+ ThreadInVMfromUnknown() : _thread(NULL) {
+ Thread* t = Thread::current();
+ if (t->is_Java_thread()) {
+ JavaThread* t2 = (JavaThread*) t;
+ if (t2->thread_state() == _thread_in_native) {
+ _thread = t2;
+ ThreadStateTransition::transition_from_native(t2, _thread_in_vm);
+ // Used to have a HandleMarkCleaner but that is dangerous as
+ // it could free a handle in our (indirect, nested) caller.
+ // We expect any handles will be short lived and figure we
+ // don't need an actual HandleMark.
+ }
+ }
+ }
+ ~ThreadInVMfromUnknown() {
+ if (_thread) {
+ ThreadStateTransition::transition_and_fence(_thread, _thread_in_vm, _thread_in_native);
+ }
+ }
+};
+
+
+class ThreadInVMfromNative : public ThreadStateTransition {
+ public:
+ ThreadInVMfromNative(JavaThread* thread) : ThreadStateTransition(thread) {
+ trans_from_native(_thread_in_vm);
+ }
+ ~ThreadInVMfromNative() {
+ trans_and_fence(_thread_in_vm, _thread_in_native);
+ }
+};
+
+
+class ThreadToNativeFromVM : public ThreadStateTransition {
+ public:
+ ThreadToNativeFromVM(JavaThread *thread) : ThreadStateTransition(thread) {
+ // We are leaving the VM at this point and going directly to native code.
+ // Block, if we are in the middle of a safepoint synchronization.
+ assert(!thread->owns_locks(), "must release all locks when leaving VM");
+ thread->frame_anchor()->make_walkable(thread);
+ trans_and_fence(_thread_in_vm, _thread_in_native);
+ // Check for pending. async. exceptions or suspends.
+ if (_thread->has_special_runtime_exit_condition()) _thread->handle_special_runtime_exit_condition(false);
+ }
+
+ ~ThreadToNativeFromVM() {
+ trans_from_native(_thread_in_vm);
+ assert(!_thread->is_pending_jni_exception_check(), "Pending JNI Exception Check");
+ // We don't need to clear_walkable because it will happen automagically when we return to java
+ }
+};
+
+
+class ThreadBlockInVM : public ThreadStateTransition {
+ public:
+ ThreadBlockInVM(JavaThread *thread)
+ : ThreadStateTransition(thread) {
+ // Once we are blocked vm expects stack to be walkable
+ thread->frame_anchor()->make_walkable(thread);
+ trans_and_fence(_thread_in_vm, _thread_blocked);
+ }
+ ~ThreadBlockInVM() {
+ trans_and_fence(_thread_blocked, _thread_in_vm);
+ // We don't need to clear_walkable because it will happen automagically when we return to java
+ }
+};
+
+
+// This special transition class is only used to prevent asynchronous exceptions
+// from being installed on vm exit in situations where we can't tolerate them.
+// See bugs: 4324348, 4854693, 4998314, 5040492, 5050705.
+class ThreadInVMfromJavaNoAsyncException : public ThreadStateTransition {
+ public:
+ ThreadInVMfromJavaNoAsyncException(JavaThread* thread) : ThreadStateTransition(thread) {
+ trans_from_java(_thread_in_vm);
+ }
+ ~ThreadInVMfromJavaNoAsyncException() {
+ if (_thread->stack_yellow_reserved_zone_disabled()) {
+ _thread->enable_stack_yellow_reserved_zone();
+ }
+ trans(_thread_in_vm, _thread_in_Java);
+ // NOTE: We do not check for pending. async. exceptions.
+ // If we did and moved the pending async exception over into the
+ // pending exception field, we would need to deopt (currently C2
+ // only). However, to do so would require that we transition back
+ // to the _thread_in_vm state. Instead we postpone the handling of
+ // the async exception.
+
+
+ // Check for pending. suspends only.
+ if (_thread->has_special_runtime_exit_condition())
+ _thread->handle_special_runtime_exit_condition(false);
+ }
+};
+
+// Debug class instantiated in JRT_ENTRY and ITR_ENTRY macro.
+// Can be used to verify properties on enter/exit of the VM.
+
+#ifdef ASSERT
+class VMEntryWrapper {
+ public:
+ VMEntryWrapper();
+ ~VMEntryWrapper();
+};
+
+
+class VMNativeEntryWrapper {
+ public:
+ VMNativeEntryWrapper() {
+ if (GCALotAtAllSafepoints) InterfaceSupport::check_gc_alot();
+ }
+
+ ~VMNativeEntryWrapper() {
+ if (GCALotAtAllSafepoints) InterfaceSupport::check_gc_alot();
+ }
+};
+
+#endif
+
+
+// VM-internal runtime interface support
+
+#ifdef ASSERT
+
+class RuntimeHistogramElement : public HistogramElement {
+ public:
+ RuntimeHistogramElement(const char* name);
+};
+
+#define TRACE_CALL(result_type, header) \
+ InterfaceSupport::_number_of_calls++; \
+ if (CountRuntimeCalls) { \
+ static RuntimeHistogramElement* e = new RuntimeHistogramElement(#header); \
+ if (e != NULL) e->increment_count(); \
+ }
+#else
+#define TRACE_CALL(result_type, header) \
+ /* do nothing */
+#endif
+
+
+// LEAF routines do not lock, GC or throw exceptions
+
+#define VM_LEAF_BASE(result_type, header) \
+ TRACE_CALL(result_type, header) \
+ debug_only(NoHandleMark __hm;) \
+ os::verify_stack_alignment(); \
+ /* begin of body */
+
+#define VM_ENTRY_BASE_FROM_LEAF(result_type, header, thread) \
+ TRACE_CALL(result_type, header) \
+ debug_only(ResetNoHandleMark __rnhm;) \
+ HandleMarkCleaner __hm(thread); \
+ Thread* THREAD = thread; \
+ os::verify_stack_alignment(); \
+ /* begin of body */
+
+
+// ENTRY routines may lock, GC and throw exceptions
+
+#define VM_ENTRY_BASE(result_type, header, thread) \
+ TRACE_CALL(result_type, header) \
+ HandleMarkCleaner __hm(thread); \
+ Thread* THREAD = thread; \
+ os::verify_stack_alignment(); \
+ /* begin of body */
+
+
+// QUICK_ENTRY routines behave like ENTRY but without a handle mark
+
+#define VM_QUICK_ENTRY_BASE(result_type, header, thread) \
+ TRACE_CALL(result_type, header) \
+ debug_only(NoHandleMark __hm;) \
+ Thread* THREAD = thread; \
+ os::verify_stack_alignment(); \
+ /* begin of body */
+
+
+// Definitions for IRT (Interpreter Runtime)
+// (thread is an argument passed in to all these routines)
+
+#define IRT_ENTRY(result_type, header) \
+ result_type header { \
+ ThreadInVMfromJava __tiv(thread); \
+ VM_ENTRY_BASE(result_type, header, thread) \
+ debug_only(VMEntryWrapper __vew;)
+
+
+#define IRT_LEAF(result_type, header) \
+ result_type header { \
+ VM_LEAF_BASE(result_type, header) \
+ debug_only(NoSafepointVerifier __nspv(true);)
+
+
+#define IRT_ENTRY_NO_ASYNC(result_type, header) \
+ result_type header { \
+ ThreadInVMfromJavaNoAsyncException __tiv(thread); \
+ VM_ENTRY_BASE(result_type, header, thread) \
+ debug_only(VMEntryWrapper __vew;)
+
+#define IRT_END }
+
+
+// Definitions for JRT (Java (Compiler/Shared) Runtime)
+
+#define JRT_ENTRY(result_type, header) \
+ result_type header { \
+ ThreadInVMfromJava __tiv(thread); \
+ VM_ENTRY_BASE(result_type, header, thread) \
+ debug_only(VMEntryWrapper __vew;)
+
+
+#define JRT_LEAF(result_type, header) \
+ result_type header { \
+ VM_LEAF_BASE(result_type, header) \
+ debug_only(JRTLeafVerifier __jlv;)
+
+
+#define JRT_ENTRY_NO_ASYNC(result_type, header) \
+ result_type header { \
+ ThreadInVMfromJavaNoAsyncException __tiv(thread); \
+ VM_ENTRY_BASE(result_type, header, thread) \
+ debug_only(VMEntryWrapper __vew;)
+
+// Same as JRT Entry but allows for return value after the safepoint
+// to get back into Java from the VM
+#define JRT_BLOCK_ENTRY(result_type, header) \
+ result_type header { \
+ TRACE_CALL(result_type, header) \
+ HandleMarkCleaner __hm(thread);
+
+#define JRT_BLOCK \
+ { \
+ ThreadInVMfromJava __tiv(thread); \
+ Thread* THREAD = thread; \
+ debug_only(VMEntryWrapper __vew;)
+
+#define JRT_BLOCK_NO_ASYNC \
+ { \
+ ThreadInVMfromJavaNoAsyncException __tiv(thread); \
+ Thread* THREAD = thread; \
+ debug_only(VMEntryWrapper __vew;)
+
+#define JRT_BLOCK_END }
+
+#define JRT_END }
+
+// Definitions for JNI
+
+#define JNI_ENTRY(result_type, header) \
+ JNI_ENTRY_NO_PRESERVE(result_type, header) \
+ WeakPreserveExceptionMark __wem(thread);
+
+#define JNI_ENTRY_NO_PRESERVE(result_type, header) \
+extern "C" { \
+ result_type JNICALL header { \
+ JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
+ assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+ VM_ENTRY_BASE(result_type, header, thread)
+
+
+// Ensure that the VMNativeEntryWrapper constructor, which can cause
+// a GC, is called outside the NoHandleMark (set via VM_QUICK_ENTRY_BASE).
+#define JNI_QUICK_ENTRY(result_type, header) \
+extern "C" { \
+ result_type JNICALL header { \
+ JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
+ assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+ VM_QUICK_ENTRY_BASE(result_type, header, thread)
+
+
+#define JNI_LEAF(result_type, header) \
+extern "C" { \
+ result_type JNICALL header { \
+ JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
+ assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
+ VM_LEAF_BASE(result_type, header)
+
+
+// Close the routine and the extern "C"
+#define JNI_END } }
+
+
+
+// Definitions for JVM
+
+#define JVM_ENTRY(result_type, header) \
+extern "C" { \
+ result_type JNICALL header { \
+ JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+ VM_ENTRY_BASE(result_type, header, thread)
+
+
+#define JVM_ENTRY_NO_ENV(result_type, header) \
+extern "C" { \
+ result_type JNICALL header { \
+ JavaThread* thread = JavaThread::current(); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+ VM_ENTRY_BASE(result_type, header, thread)
+
+
+#define JVM_QUICK_ENTRY(result_type, header) \
+extern "C" { \
+ result_type JNICALL header { \
+ JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+ VM_QUICK_ENTRY_BASE(result_type, header, thread)
+
+
+#define JVM_LEAF(result_type, header) \
+extern "C" { \
+ result_type JNICALL header { \
+ VM_Exit::block_if_vm_exited(); \
+ VM_LEAF_BASE(result_type, header)
+
+
+#define JVM_ENTRY_FROM_LEAF(env, result_type, header) \
+ { { \
+ JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+ VM_ENTRY_BASE_FROM_LEAF(result_type, header, thread)
+
+
+#define JVM_END } }
+
+#endif // SHARE_VM_RUNTIME_INTERFACESUPPORT_INLINE_HPP
--- a/src/hotspot/share/runtime/java.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/java.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -56,7 +56,7 @@
#include "runtime/compilationPolicy.hpp"
#include "runtime/deoptimization.hpp"
#include "runtime/init.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/memprofiler.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/share/runtime/javaCalls.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/javaCalls.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -35,7 +35,7 @@
#include "prims/jniCheck.hpp"
#include "runtime/compilationPolicy.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/share/runtime/mutex.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/mutex.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "runtime/atomic.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/mutex.hpp"
#include "runtime/orderAccess.inline.hpp"
#include "runtime/osThread.hpp"
--- a/src/hotspot/share/runtime/objectMonitor.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/objectMonitor.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -30,7 +30,7 @@
#include "oops/oop.inline.hpp"
#include "runtime/atomic.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/objectMonitor.inline.hpp"
--- a/src/hotspot/share/runtime/objectMonitor.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/objectMonitor.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,6 +31,8 @@
#include "runtime/park.hpp"
#include "runtime/perfData.hpp"
+class ObjectMonitor;
+
// ObjectWaiter serves as a "proxy" or surrogate thread.
// TODO-FIXME: Eliminate ObjectWaiter and use the thread-specific
// ParkEvent instead. Beware, however, that the JVMTI code
--- a/src/hotspot/share/runtime/os.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/os.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -48,7 +48,7 @@
#include "runtime/arguments.hpp"
#include "runtime/atomic.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/share/runtime/os.hpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/os.hpp Fri Mar 16 09:12:13 2018 -0400
@@ -30,7 +30,8 @@
#include "metaprogramming/isRegisteredEnum.hpp"
#include "metaprogramming/integralConstant.hpp"
#include "runtime/extendedPC.hpp"
-#include "runtime/handles.hpp"
+#include "utilities/exceptions.hpp"
+#include "utilities/ostream.hpp"
#include "utilities/macros.hpp"
#ifndef _WINDOWS
# include <setjmp.h>
@@ -54,6 +55,7 @@
class DLL;
class FileHandle;
class NativeCallStack;
+class methodHandle;
template<class E> class GrowableArray;
--- a/src/hotspot/share/runtime/safepoint.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/safepoint.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -47,7 +47,7 @@
#include "runtime/compilationPolicy.hpp"
#include "runtime/deoptimization.hpp"
#include "runtime/frame.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/orderAccess.inline.hpp"
#include "runtime/osThread.hpp"
--- a/src/hotspot/share/runtime/serviceThread.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/serviceThread.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -23,7 +23,7 @@
*/
#include "precompiled.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/serviceThread.hpp"
#include "runtime/mutexLocker.hpp"
--- a/src/hotspot/share/runtime/sharedRuntime.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/sharedRuntime.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -56,7 +56,7 @@
#include "runtime/compilationPolicy.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/init.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/sharedRuntime.hpp"
--- a/src/hotspot/share/runtime/sharedRuntimeTrans.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/sharedRuntimeTrans.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "jni.h"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/sharedRuntime.hpp"
// This file contains copies of the fdlibm routines used by
--- a/src/hotspot/share/runtime/sharedRuntimeTrig.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/sharedRuntimeTrig.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "jni.h"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/sharedRuntimeMath.hpp"
--- a/src/hotspot/share/runtime/simpleThresholdPolicy.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/simpleThresholdPolicy.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,6 +24,7 @@
#include "precompiled.hpp"
#include "compiler/compileBroker.hpp"
+#include "gc/shared/gcLocker.hpp"
#include "memory/resourceArea.hpp"
#include "runtime/arguments.hpp"
#include "runtime/simpleThresholdPolicy.hpp"
--- a/src/hotspot/share/runtime/stubRoutines.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/stubRoutines.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -27,7 +27,7 @@
#include "memory/resourceArea.hpp"
#include "oops/access.inline.hpp"
#include "oops/oop.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/timerTrace.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
--- a/src/hotspot/share/runtime/sweeper.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/sweeper.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -35,6 +35,7 @@
#include "oops/method.hpp"
#include "runtime/atomic.hpp"
#include "runtime/compilationPolicy.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/orderAccess.inline.hpp"
#include "runtime/os.hpp"
--- a/src/hotspot/share/runtime/synchronizer.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/synchronizer.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -34,7 +34,7 @@
#include "runtime/atomic.hpp"
#include "runtime/biasedLocking.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/objectMonitor.hpp"
#include "runtime/objectMonitor.inline.hpp"
--- a/src/hotspot/share/runtime/thread.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/thread.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -69,7 +69,7 @@
#include "runtime/globals.hpp"
#include "runtime/handshake.hpp"
#include "runtime/init.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jniHandles.inline.hpp"
--- a/src/hotspot/share/runtime/vmThread.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/vmThread.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -31,7 +31,7 @@
#include "oops/method.hpp"
#include "oops/oop.inline.hpp"
#include "oops/verifyOopClosure.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/os.hpp"
#include "runtime/safepoint.hpp"
--- a/src/hotspot/share/runtime/vm_operations.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/runtime/vm_operations.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -35,7 +35,7 @@
#include "oops/symbol.hpp"
#include "runtime/arguments.hpp"
#include "runtime/deoptimization.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/sweeper.hpp"
#include "runtime/thread.inline.hpp"
#include "runtime/threadSMR.inline.hpp"
--- a/src/hotspot/share/services/gcNotifier.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/services/gcNotifier.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -27,7 +27,7 @@
#include "classfile/vmSymbols.hpp"
#include "oops/objArrayOop.inline.hpp"
#include "oops/oop.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/handles.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutex.hpp"
--- a/src/hotspot/share/services/heapDumper.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/services/heapDumper.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -37,6 +37,7 @@
#include "oops/objArrayOop.inline.hpp"
#include "oops/oop.inline.hpp"
#include "oops/typeArrayOop.inline.hpp"
+#include "runtime/handles.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jniHandles.hpp"
#include "runtime/os.hpp"
--- a/src/hotspot/share/services/lowMemoryDetector.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/services/lowMemoryDetector.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -27,7 +27,7 @@
#include "classfile/vmSymbols.hpp"
#include "memory/resourceArea.hpp"
#include "oops/oop.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/java.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/mutex.hpp"
--- a/src/hotspot/share/services/management.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/services/management.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -38,7 +38,7 @@
#include "runtime/arguments.hpp"
#include "runtime/globals.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/os.hpp"
--- a/test/hotspot/gtest/classfile/test_symbolTable.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/test/hotspot/gtest/classfile/test_symbolTable.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -22,7 +22,7 @@
*/
#include "precompiled.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "classfile/symbolTable.hpp"
#include "unittest.hpp"
--- a/test/hotspot/gtest/code/test_vtableStub.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/test/hotspot/gtest/code/test_vtableStub.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "code/vtableStubs.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "unittest.hpp"
TEST_VM(code, vtableStubs) {
--- a/test/hotspot/gtest/gc/shared/test_oopStorage.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/test/hotspot/gtest/gc/shared/test_oopStorage.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -30,7 +30,7 @@
#include "metaprogramming/conditional.hpp"
#include "metaprogramming/enableIf.hpp"
#include "runtime/handles.inline.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/mutex.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/thread.hpp"
--- a/test/hotspot/gtest/logging/test_gcTraceTime.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/test/hotspot/gtest/logging/test_gcTraceTime.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -26,7 +26,7 @@
#include "logTestFixture.hpp"
#include "logTestUtils.inline.hpp"
#include "logging/log.hpp"
-#include "runtime/interfaceSupport.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
#include "unittest.hpp"
class GCTraceTimeTest : public LogTestFixture {