< prev index next >
src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
Print this page
rev 47415 : Add Thread Local handshakes and thread local polling
@@ -1139,18 +1139,21 @@
#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 slow_path;
+
+#ifndef _LP64
+ __ safepoint_poll(slow_path);
+#else
+ __ safepoint_poll(slow_path, r15_thread, rscratch1);
+#endif
- Label L;
- __ jcc(Assembler::notEqual, L);
__ cmpl(Address(thread, JavaThread::suspend_flags_offset()), 0);
__ jcc(Assembler::equal, Continue);
- __ bind(L);
+ __ 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 >