equal
deleted
inserted
replaced
35 #include "prims/methodHandles.hpp" |
35 #include "prims/methodHandles.hpp" |
36 #include "runtime/biasedLocking.hpp" |
36 #include "runtime/biasedLocking.hpp" |
37 #include "runtime/interfaceSupport.hpp" |
37 #include "runtime/interfaceSupport.hpp" |
38 #include "runtime/objectMonitor.hpp" |
38 #include "runtime/objectMonitor.hpp" |
39 #include "runtime/os.inline.hpp" |
39 #include "runtime/os.inline.hpp" |
|
40 #include "runtime/safepoint.hpp" |
|
41 #include "runtime/safepointMechanism.hpp" |
40 #include "runtime/sharedRuntime.hpp" |
42 #include "runtime/sharedRuntime.hpp" |
41 #include "runtime/stubRoutines.hpp" |
43 #include "runtime/stubRoutines.hpp" |
42 #include "utilities/align.hpp" |
44 #include "utilities/align.hpp" |
43 #include "utilities/macros.hpp" |
45 #include "utilities/macros.hpp" |
44 #if INCLUDE_ALL_GCS |
46 #if INCLUDE_ALL_GCS |
234 set(os::get_memory_serialize_page(), tmp1); |
236 set(os::get_memory_serialize_page(), tmp1); |
235 st(G0, tmp1, tmp2); |
237 st(G0, tmp1, tmp2); |
236 } |
238 } |
237 |
239 |
238 |
240 |
|
241 void MacroAssembler::safepoint_poll(Label& slow_path, bool a, Register thread_reg, Register temp_reg) { |
|
242 if (SafepointMechanism::uses_thread_local_poll()) { |
|
243 ldx(Address(thread_reg, Thread::polling_page_offset()), temp_reg, 0); |
|
244 // Armed page has poll bit set. |
|
245 and3(temp_reg, SafepointMechanism::poll_bit(), temp_reg); |
|
246 br_notnull(temp_reg, a, Assembler::pn, slow_path); |
|
247 } else { |
|
248 AddressLiteral sync_state(SafepointSynchronize::address_of_state()); |
|
249 |
|
250 load_contents(sync_state, temp_reg); |
|
251 cmp(temp_reg, SafepointSynchronize::_not_synchronized); |
|
252 br(Assembler::notEqual, a, Assembler::pn, slow_path); |
|
253 } |
|
254 } |
239 |
255 |
240 void MacroAssembler::enter() { |
256 void MacroAssembler::enter() { |
241 Unimplemented(); |
257 Unimplemented(); |
242 } |
258 } |
243 |
259 |