< prev index next >

src/hotspot/cpu/x86/macroAssembler_x86.cpp

Print this page
rev 48494 : 8195112: x86 (32 bit): implementation for Thread-local handshakes
Reviewed-by:

*** 3759,3786 **** // Size of store must match masking code above movl(as_Address(ArrayAddress(page, index)), tmp); } - #ifdef _LP64 void MacroAssembler::safepoint_poll(Label& slow_path, Register thread_reg, Register temp_reg) { if (SafepointMechanism::uses_thread_local_poll()) { ! testb(Address(r15_thread, Thread::polling_page_offset()), SafepointMechanism::poll_bit()); jcc(Assembler::notZero, slow_path); // handshake bit set implies poll } else { cmp32(ExternalAddress(SafepointSynchronize::address_of_state()), SafepointSynchronize::_not_synchronized); jcc(Assembler::notEqual, slow_path); } } - #else - void MacroAssembler::safepoint_poll(Label& slow_path) { - cmp32(ExternalAddress(SafepointSynchronize::address_of_state()), - SafepointSynchronize::_not_synchronized); - jcc(Assembler::notEqual, slow_path); - } - #endif // Calls to C land // // When entering C land, the rbp, & rsp of the last Java frame have to be recorded // in the (thread-local) JavaThread object. When leaving C land, the last Java fp --- 3759,3784 ---- // Size of store must match masking code above movl(as_Address(ArrayAddress(page, index)), tmp); } void MacroAssembler::safepoint_poll(Label& slow_path, Register thread_reg, Register temp_reg) { if (SafepointMechanism::uses_thread_local_poll()) { ! #ifndef AMD64 ! if (thread_reg == noreg) { ! thread_reg = temp_reg; ! get_thread(thread_reg); ! } ! #endif ! testb(Address(thread_reg, Thread::polling_page_offset()), SafepointMechanism::poll_bit()); jcc(Assembler::notZero, slow_path); // handshake bit set implies poll } else { cmp32(ExternalAddress(SafepointSynchronize::address_of_state()), SafepointSynchronize::_not_synchronized); jcc(Assembler::notEqual, slow_path); } } // Calls to C land // // When entering C land, the rbp, & rsp of the last Java frame have to be recorded // in the (thread-local) JavaThread object. When leaving C land, the last Java fp
< prev index next >