src/hotspot/cpu/sparc/macroAssembler_sparc.cpp
changeset 47881 0ce0ac68ace7
parent 47765 b7c7428eaab9
child 48557 2e867226b914
equal deleted inserted replaced
47824:cf127be65014 47881:0ce0ac68ace7
    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