< prev index next >
src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
Print this page
rev 47415 : Add Thread Local handshakes and thread local polling
*** 1139,1156 ****
#endif // _LP64
// check for safepoint operation in progress and/or pending suspend requests
{
Label Continue;
! __ cmp32(ExternalAddress(SafepointSynchronize::address_of_state()),
! SafepointSynchronize::_not_synchronized);
- Label L;
- __ jcc(Assembler::notEqual, L);
__ cmpl(Address(thread, JavaThread::suspend_flags_offset()), 0);
__ jcc(Assembler::equal, Continue);
! __ bind(L);
// Don't use call_VM as it will see a possible pending exception
// and forward it and never return here preventing us from
// clearing _last_native_pc down below. Also can't use
// call_VM_leaf either as it will check to see if r13 & r14 are
--- 1139,1159 ----
#endif // _LP64
// check for safepoint operation in progress and/or pending suspend requests
{
Label Continue;
! Label slow_path;
!
! #ifndef _LP64
! __ safepoint_poll(slow_path);
! #else
! __ safepoint_poll(slow_path, r15_thread, rscratch1);
! #endif
__ cmpl(Address(thread, JavaThread::suspend_flags_offset()), 0);
__ jcc(Assembler::equal, Continue);
! __ bind(slow_path);
// Don't use call_VM as it will see a possible pending exception
// and forward it and never return here preventing us from
// clearing _last_native_pc down below. Also can't use
// call_VM_leaf either as it will check to see if r13 & r14 are
< prev index next >