# HG changeset patch # User coleenp # Date 1521205933 14400 # Node ID ef5d5d343e2a95ce2d99a04860d4cf21bc7b0e0a # Parent b91b558a90767cc184e8af3d27b82cc2aa218e31 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 diff -r b91b558a9076 -r ef5d5d343e2a make/nb_native/nbproject/configurations.xml --- 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 @@ jvmtiClassFileReconstituter.hpp jvmtiCodeBlobEvents.cpp jvmtiCodeBlobEvents.hpp - jvmtiEnter.hpp + jvmtiEnter.inline.hpp jvmtiEnv.cpp jvmtiEnvBase.cpp jvmtiEnvBase.hpp @@ -13398,7 +13398,7 @@ tool="3" flavor2="0"> - @@ -27175,7 +27175,7 @@ tool="3" flavor2="0"> - diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/aarch64/assembler_aarch64.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/aarch64/interpreterRT_aarch64.cpp --- 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-> diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/aarch64/runtime_aarch64.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/arm/assembler_arm.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/arm/assembler_arm_32.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/arm/assembler_arm_64.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/arm/interpreterRT_arm.cpp --- 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-> diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/arm/macroAssembler_arm.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/arm/runtime_arm.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/ppc/assembler_ppc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/ppc/interpreterRT_ppc.cpp --- 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-> diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/ppc/macroAssembler_ppc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/ppc/methodHandles_ppc.cpp --- 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-> diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/ppc/runtime_ppc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/ppc/templateTable_ppc_64.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/s390/assembler_s390.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/s390/interpreterRT_s390.cpp --- 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. diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/s390/macroAssembler_s390.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/s390/methodHandles_s390.cpp --- 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-> diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/s390/runtime_s390.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/s390/sharedRuntime_s390.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/s390/templateTable_s390.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/sparc/c1_LIRAssembler_sparc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/sparc/interpreterRT_sparc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/sparc/macroAssembler_sparc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/sparc/methodHandles_sparc.cpp --- 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-> diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/sparc/runtime_sparc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/sparc/sharedRuntime_sparc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/sparc/templateTable_sparc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/x86/assembler_x86.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/x86/interpreterRT_x86_32.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/x86/interpreterRT_x86_64.cpp --- 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-> diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/x86/macroAssembler_x86.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/x86/methodHandles_x86.cpp --- 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-> diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/x86/runtime_x86_32.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/x86/runtime_x86_64.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/x86/templateTable_x86.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/zero/assembler_zero.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/zero/cppInterpreter_zero.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/zero/interpreterRT_zero.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/cpu/zero/sharedRuntime_zero.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/aix/attachListener_aix.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/aix/jvm_aix.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/aix/os_aix.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/bsd/attachListener_bsd.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/bsd/jvm_bsd.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/bsd/os_bsd.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/linux/attachListener_linux.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/linux/jvm_linux.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/linux/os_linux.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/posix/os_posix.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/solaris/attachListener_solaris.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/solaris/jvm_solaris.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/solaris/os_solaris.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/windows/attachListener_windows.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/windows/jvm_windows.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os/windows/os_windows.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/bsd_zero/os_bsd_zero.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/linux_sparc/os_linux_sparc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/linux_zero/os_linux_zero.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/solaris_sparc/os_solaris_sparc.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/solaris_x86/os_solaris_x86.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/os_cpu/windows_x86/os_windows_x86.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/adlc/main.cpp --- 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"); diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/aot/aotCodeHeap.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/c1/c1_Compiler.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/c1/c1_GraphBuilder.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/c1/c1_LIRAssembler.cpp --- 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) { diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/c1/c1_LIRGenerator.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/c1/c1_Runtime1.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciArray.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciBaseObject.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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciCallSite.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciConstantPoolCache.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciEnv.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciExceptionHandler.cpp --- 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 // diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciField.cpp --- 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 // diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciField.hpp --- 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 // diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciInstance.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciInstanceKlass.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciKlass.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciMemberName.cpp --- 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" // ------------------------------------------------------------------ diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciMetadata.cpp --- 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" // ------------------------------------------------------------------ diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciMethod.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciMethodData.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciMethodHandle.cpp --- 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" // ------------------------------------------------------------------ diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciMethodType.cpp --- /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); + ) +} diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciMethodType.hpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciNullObject.cpp --- 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 // diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciNullObject.hpp --- 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 // diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciObjArray.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciObjArrayKlass.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciObject.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciObjectFactory.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciReplay.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciSignature.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciSignature.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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciStreams.cpp --- 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 // diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciSymbol.cpp --- 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" // ------------------------------------------------------------------ diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciType.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciTypeArray.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciTypeArrayKlass.cpp --- 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 // diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciUtilities.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciUtilities.hpp --- 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"); } diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/ci/ciUtilities.inline.hpp --- /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 + diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/classfile/classLoader.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/classfile/javaClasses.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/classfile/stackMapTable.cpp --- 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; diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/classfile/stackMapTable.hpp --- 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, diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/classfile/verifier.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/code/codeBlob.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/code/compiledMethod.cpp --- 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) diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/code/debugInfo.cpp --- 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"); diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/code/debugInfo.hpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/code/nmethod.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/compiler/compileBroker.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/compiler/compilerDirectives.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/compiler/compilerDirectives.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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/gc/cms/concurrentMarkSweepThread.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/gc/cms/vmCMSOperations.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/gc/g1/vm_operations_g1.cpp --- 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(); diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/gc/shared/concurrentGCThread.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/gc/shared/vmGCOperations.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/interpreter/bytecodeInterpreter.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/interpreter/interpreterRuntime.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/interpreter/linkResolver.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/jvmci/compilerRuntime.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/jvmci/jvmciCodeInstaller.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/jvmci/jvmciCompilerToVM.cpp --- 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); diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/jvmci/jvmciCompilerToVM.hpp --- 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) { diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/jvmci/jvmciRuntime.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/libadt/vectset.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/memory/metaspace.hpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/oops/constantPool.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/oops/methodData.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/opto/library_call.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/opto/macro.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/opto/parse1.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/opto/runtime.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/precompiled/precompiled.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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jni.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jniCheck.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvm.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp --- 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; diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvmtiClassFileReconstituter.hpp --- 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) { diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvmtiEnter.hpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvmtiEnter.inline.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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvmtiEnter.xsl --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvmtiEnv.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvmtiEnvBase.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvmtiEnvThreadState.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvmtiExport.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvmtiImpl.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvmtiRawMonitor.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/jvmtiUtil.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/methodHandles.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/methodHandles.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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/perf.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/unsafe.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/wbtestmethods/parserTests.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/whitebox.cpp --- 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; diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/whitebox.hpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/prims/whitebox.inline.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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/biasedLocking.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/deoptimization.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/fieldDescriptor.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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/handles.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/handles.hpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/handles.inline.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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/handshake.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/interfaceSupport.cpp --- 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; diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/interfaceSupport.hpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/interfaceSupport.inline.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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/java.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/javaCalls.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/mutex.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/objectMonitor.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/objectMonitor.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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/os.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/os.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 @@ -54,6 +55,7 @@ class DLL; class FileHandle; class NativeCallStack; +class methodHandle; template class GrowableArray; diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/safepoint.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/serviceThread.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/sharedRuntime.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/sharedRuntimeTrans.cpp --- 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 diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/sharedRuntimeTrig.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/simpleThresholdPolicy.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/stubRoutines.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/sweeper.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/synchronizer.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/thread.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/vmThread.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/runtime/vm_operations.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/services/gcNotifier.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/services/heapDumper.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/services/lowMemoryDetector.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a src/hotspot/share/services/management.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a test/hotspot/gtest/classfile/test_symbolTable.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a test/hotspot/gtest/code/test_vtableStub.cpp --- 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) { diff -r b91b558a9076 -r ef5d5d343e2a test/hotspot/gtest/gc/shared/test_oopStorage.cpp --- 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" diff -r b91b558a9076 -r ef5d5d343e2a test/hotspot/gtest/logging/test_gcTraceTime.cpp --- 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 {