changeset 23980:d93bfdcbda64

Export more fields of ObjectMonitor in vmStructs Export enough in order to be able to implement fast lock/unlock
author Gilles Duboscq <gilles.m.duboscq@oracle.com>
date Fri, 02 Dec 2016 15:04:11 +0100
parents a81ca24b52bc
children f272ef93c3a3
files src/share/vm/jvmci/vmStructs_jvmci.hpp src/share/vm/runtime/vmStructs.cpp
diffstat 2 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/jvmci/vmStructs_jvmci.hpp	Fri Dec 02 15:02:35 2016 +0100
+++ b/src/share/vm/jvmci/vmStructs_jvmci.hpp	Fri Dec 02 15:04:11 2016 +0100
@@ -30,7 +30,7 @@
 #include "jvmci/jvmciCompilerToVM.hpp"
 #include "jvmci/jvmciEnv.hpp"
 
-#define VM_STRUCTS_JVMCI(nonstatic_field, static_field)                       \
+#define VM_STRUCTS_JVMCI(nonstatic_field, static_field, volatile_nonstatic_field)                                                    \
   static_field(CompilerToVM::Data,             Klass_vtable_start_offset,              int)                                          \
   static_field(CompilerToVM::Data,             Klass_vtable_length_offset,             int)                                          \
                                                                                                                                      \
@@ -87,6 +87,10 @@
   static_field(StubRoutines,                   _montgomeryMultiply,                    address)                                      \
   static_field(StubRoutines,                   _montgomerySquare,                      address)                                      \
                                                                                                                                      \
+  volatile_nonstatic_field(ObjectMonitor,      _cxq,                                   ObjectWaiter*)                                \
+  volatile_nonstatic_field(ObjectMonitor,      _EntryList,                             ObjectWaiter*)                                \
+  volatile_nonstatic_field(ObjectMonitor,      _succ,                                  Thread*)                                      \
+                                                                                                                                     \
   nonstatic_field(JavaThread,                  _pending_deoptimization,                int)                                          \
   nonstatic_field(JavaThread,                  _pending_failed_speculation,            oop)                                          \
   nonstatic_field(JavaThread,                  _pending_transfer_to_interpreter,       bool)                                         \
@@ -99,6 +103,7 @@
   declare_toplevel_type(narrowKlass)                                          \
   declare_toplevel_type(JVMCIEnv)                                             \
   declare_toplevel_type(CompilerToVM::Data)                                   \
+  declare_toplevel_type(ObjectWaiter)                                         \
 
 #define VM_INT_CONSTANTS_JVMCI(declare_constant, declare_preprocessor_constant)                   \
   declare_constant(Deoptimization::Reason_unreached0)                                             \
--- a/src/share/vm/runtime/vmStructs.cpp	Fri Dec 02 15:02:35 2016 +0100
+++ b/src/share/vm/runtime/vmStructs.cpp	Fri Dec 02 15:04:11 2016 +0100
@@ -3042,7 +3042,8 @@
 
 #if INCLUDE_JVMCI
    VM_STRUCTS_JVMCI(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
-                    GENERATE_STATIC_VM_STRUCT_ENTRY)
+                    GENERATE_STATIC_VM_STRUCT_ENTRY,
+                    GENERATE_NONSTATIC_VM_STRUCT_ENTRY)
 #endif
 
 #if INCLUDE_ALL_GCS