8201318: Introduce GCThreadLocalData to abstract GC-specific data belonging to a thread

Reviewed-by: shade, rehn
This commit is contained in:
Per Lidén 2018-04-12 08:25:56 +02:00
parent 4c60e69b97
commit 6825739d3f
38 changed files with 372 additions and 299 deletions

View file

@ -50,6 +50,9 @@
#include "utilities/debug.hpp"
#include "utilities/defaultStream.hpp"
#include "utilities/macros.hpp"
#if INCLUDE_ALL_GCS
#include "gc/g1/g1ThreadLocalData.hpp"
#endif // INCLUDE_ALL_GCS
#if defined(_MSC_VER)
#define strtoll _strtoi64
@ -454,11 +457,15 @@ JRT_LEAF(void, JVMCIRuntime::log_object(JavaThread* thread, oopDesc* obj, bool a
JRT_END
JRT_LEAF(void, JVMCIRuntime::write_barrier_pre(JavaThread* thread, oopDesc* obj))
thread->satb_mark_queue().enqueue(obj);
#if INCLUDE_ALL_GCS
G1ThreadLocalData::satb_mark_queue(thread).enqueue(obj);
#endif // INCLUDE_ALL_GCS
JRT_END
JRT_LEAF(void, JVMCIRuntime::write_barrier_post(JavaThread* thread, void* card_addr))
thread->dirty_card_queue().enqueue(card_addr);
#if INCLUDE_ALL_GCS
G1ThreadLocalData::dirty_card_queue(thread).enqueue(card_addr);
#endif // INCLUDE_ALL_GCS
JRT_END
JRT_LEAF(jboolean, JVMCIRuntime::validate_object(JavaThread* thread, oopDesc* parent, oopDesc* child))