equal
deleted
inserted
replaced
35 #include "runtime/biasedLocking.hpp" |
35 #include "runtime/biasedLocking.hpp" |
36 #include "runtime/icache.hpp" |
36 #include "runtime/icache.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.hpp" |
39 #include "runtime/os.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/macros.hpp" |
44 #include "utilities/macros.hpp" |
43 #if INCLUDE_ALL_GCS |
45 #if INCLUDE_ALL_GCS |
44 #include "gc/g1/g1CollectedHeap.inline.hpp" |
46 #include "gc/g1/g1CollectedHeap.inline.hpp" |
3017 load_const(tmp1, (long) os::get_memory_serialize_page()); |
3019 load_const(tmp1, (long) os::get_memory_serialize_page()); |
3018 release(); |
3020 release(); |
3019 stwx(R0, tmp1, tmp2); |
3021 stwx(R0, tmp1, tmp2); |
3020 } |
3022 } |
3021 |
3023 |
|
3024 void MacroAssembler::safepoint_poll(Label& slow_path, Register temp_reg) { |
|
3025 if (SafepointMechanism::uses_thread_local_poll()) { |
|
3026 ld(temp_reg, in_bytes(Thread::polling_page_offset()), R16_thread); |
|
3027 // Armed page has poll_bit set. |
|
3028 andi_(temp_reg, temp_reg, SafepointMechanism::poll_bit()); |
|
3029 } else { |
|
3030 lwz(temp_reg, (RegisterOrConstant)(intptr_t)SafepointSynchronize::address_of_state()); |
|
3031 cmpwi(CCR0, temp_reg, SafepointSynchronize::_not_synchronized); |
|
3032 } |
|
3033 bne(CCR0, slow_path); |
|
3034 } |
|
3035 |
3022 |
3036 |
3023 // GC barrier helper macros |
3037 // GC barrier helper macros |
3024 |
3038 |
3025 // Write the card table byte if needed. |
3039 // Write the card table byte if needed. |
3026 void MacroAssembler::card_write_barrier_post(Register Rstore_addr, Register Rnew_val, Register Rtmp) { |
3040 void MacroAssembler::card_write_barrier_post(Register Rstore_addr, Register Rnew_val, Register Rtmp) { |