< prev index next >

src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp

Print this page
rev 47415 : Add Thread Local handshakes and thread local polling

*** 1,7 **** /* ! * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 188,202 **** // r13: senderSP must preserved for slow path, set SP to it on fast path // c_rarg0: scratch (rdi on non-Win64, rcx on Win64) // c_rarg1: scratch (rsi on non-Win64, rdx on Win64) Label slow_path; ! // If we need a safepoint check, generate full interpreter entry. ! ExternalAddress state(SafepointSynchronize::address_of_state()); ! __ cmp32(ExternalAddress(SafepointSynchronize::address_of_state()), ! SafepointSynchronize::_not_synchronized); ! __ jcc(Assembler::notEqual, slow_path); // We don't generate local frame and don't align stack because // we call stub code and there is no safepoint on this path. // Load parameters --- 188,198 ---- // r13: senderSP must preserved for slow path, set SP to it on fast path // c_rarg0: scratch (rdi on non-Win64, rcx on Win64) // c_rarg1: scratch (rsi on non-Win64, rdx on Win64) Label slow_path; ! __ safepoint_poll(slow_path, r15_thread, rscratch1); // We don't generate local frame and don't align stack because // we call stub code and there is no safepoint on this path. // Load parameters
*** 238,252 **** // rbx,: Method* // r13: senderSP must preserved for slow path, set SP to it on fast path Label slow_path; ! // If we need a safepoint check, generate full interpreter entry. ! ExternalAddress state(SafepointSynchronize::address_of_state()); ! __ cmp32(ExternalAddress(SafepointSynchronize::address_of_state()), ! SafepointSynchronize::_not_synchronized); ! __ jcc(Assembler::notEqual, slow_path); // We don't generate local frame and don't align stack because // we call stub code and there is no safepoint on this path. // Load parameters --- 234,244 ---- // rbx,: Method* // r13: senderSP must preserved for slow path, set SP to it on fast path Label slow_path; ! __ safepoint_poll(slow_path, r15_thread, rscratch1); // We don't generate local frame and don't align stack because // we call stub code and there is no safepoint on this path. // Load parameters
< prev index next >