< prev index next >

src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp

Print this page
rev 47591 : 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 >