46 #include "opto/parse.hpp" |
46 #include "opto/parse.hpp" |
47 #include "opto/rootnode.hpp" |
47 #include "opto/rootnode.hpp" |
48 #include "opto/runtime.hpp" |
48 #include "opto/runtime.hpp" |
49 #include "runtime/deoptimization.hpp" |
49 #include "runtime/deoptimization.hpp" |
50 #include "runtime/sharedRuntime.hpp" |
50 #include "runtime/sharedRuntime.hpp" |
|
51 #if INCLUDE_ALL_GCS |
|
52 #include "gc/g1/g1ThreadLocalData.hpp" |
|
53 #endif // INCLUDE_ALL_GCS |
51 |
54 |
52 //----------------------------GraphKit----------------------------------------- |
55 //----------------------------GraphKit----------------------------------------- |
53 // Main utility constructor. |
56 // Main utility constructor. |
54 GraphKit::GraphKit(JVMState* jvms) |
57 GraphKit::GraphKit(JVMState* jvms) |
55 : Phase(Phase::Parser), |
58 : Phase(Phase::Parser), |
4079 |
4082 |
4080 BasicType active_type = in_bytes(SATBMarkQueue::byte_width_of_active()) == 4 ? T_INT : T_BYTE; |
4083 BasicType active_type = in_bytes(SATBMarkQueue::byte_width_of_active()) == 4 ? T_INT : T_BYTE; |
4081 assert(in_bytes(SATBMarkQueue::byte_width_of_active()) == 4 || in_bytes(SATBMarkQueue::byte_width_of_active()) == 1, "flag width"); |
4084 assert(in_bytes(SATBMarkQueue::byte_width_of_active()) == 4 || in_bytes(SATBMarkQueue::byte_width_of_active()) == 1, "flag width"); |
4082 |
4085 |
4083 // Offsets into the thread |
4086 // Offsets into the thread |
4084 const int marking_offset = in_bytes(JavaThread::satb_mark_queue_offset() + // 648 |
4087 const int marking_offset = in_bytes(G1ThreadLocalData::satb_mark_queue_active_offset()); |
4085 SATBMarkQueue::byte_offset_of_active()); |
4088 const int index_offset = in_bytes(G1ThreadLocalData::satb_mark_queue_index_offset()); |
4086 const int index_offset = in_bytes(JavaThread::satb_mark_queue_offset() + // 656 |
4089 const int buffer_offset = in_bytes(G1ThreadLocalData::satb_mark_queue_buffer_offset()); |
4087 SATBMarkQueue::byte_offset_of_index()); |
|
4088 const int buffer_offset = in_bytes(JavaThread::satb_mark_queue_offset() + // 652 |
|
4089 SATBMarkQueue::byte_offset_of_buf()); |
|
4090 |
4090 |
4091 // Now the actual pointers into the thread |
4091 // Now the actual pointers into the thread |
4092 Node* marking_adr = __ AddP(no_base, tls, __ ConX(marking_offset)); |
4092 Node* marking_adr = __ AddP(no_base, tls, __ ConX(marking_offset)); |
4093 Node* buffer_adr = __ AddP(no_base, tls, __ ConX(buffer_offset)); |
4093 Node* buffer_adr = __ AddP(no_base, tls, __ ConX(buffer_offset)); |
4094 Node* index_adr = __ AddP(no_base, tls, __ ConX(index_offset)); |
4094 Node* index_adr = __ AddP(no_base, tls, __ ConX(index_offset)); |
4284 const TypePtr* card_type = TypeRawPtr::BOTTOM; |
4284 const TypePtr* card_type = TypeRawPtr::BOTTOM; |
4285 |
4285 |
4286 const TypeFunc *tf = OptoRuntime::g1_wb_post_Type(); |
4286 const TypeFunc *tf = OptoRuntime::g1_wb_post_Type(); |
4287 |
4287 |
4288 // Offsets into the thread |
4288 // Offsets into the thread |
4289 const int index_offset = in_bytes(JavaThread::dirty_card_queue_offset() + |
4289 const int index_offset = in_bytes(G1ThreadLocalData::dirty_card_queue_index_offset()); |
4290 DirtyCardQueue::byte_offset_of_index()); |
4290 const int buffer_offset = in_bytes(G1ThreadLocalData::dirty_card_queue_buffer_offset()); |
4291 const int buffer_offset = in_bytes(JavaThread::dirty_card_queue_offset() + |
|
4292 DirtyCardQueue::byte_offset_of_buf()); |
|
4293 |
4291 |
4294 // Pointers into the thread |
4292 // Pointers into the thread |
4295 |
4293 |
4296 Node* buffer_adr = __ AddP(no_base, tls, __ ConX(buffer_offset)); |
4294 Node* buffer_adr = __ AddP(no_base, tls, __ ConX(buffer_offset)); |
4297 Node* index_adr = __ AddP(no_base, tls, __ ConX(index_offset)); |
4295 Node* index_adr = __ AddP(no_base, tls, __ ConX(index_offset)); |