src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
changeset 48332 651a95f30dfb
parent 47580 96392e113a0a
child 48476 ca9489245872
child 48585 d9fcb7ba8133
equal deleted inserted replaced
48331:a8e39cc7b88f 48332:651a95f30dfb
    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) {