mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 09:29:38 +01:00
8350412: [21u] AArch64: Ambiguous frame layout leads to incorrect traces in JFR
Reviewed-by: phh
This commit is contained in:
committed by
Vitaly Provodin
parent
87b93e9a4e
commit
dddd47ce58
@@ -1648,8 +1648,8 @@ int MachCallRuntimeNode::ret_addr_offset() {
|
||||
// for real runtime callouts it will be six instructions
|
||||
// see aarch64_enc_java_to_runtime
|
||||
// adr(rscratch2, retaddr)
|
||||
// str(rscratch2, Address(rthread, JavaThread::last_Java_pc_offset()));
|
||||
// lea(rscratch1, RuntimeAddress(addr)
|
||||
// stp(zr, rscratch2, Address(__ pre(sp, -2 * wordSize)))
|
||||
// blr(rscratch1)
|
||||
CodeBlob *cb = CodeCache::find_blob(_entry_point);
|
||||
if (cb) {
|
||||
@@ -3774,14 +3774,13 @@ encode %{
|
||||
__ post_call_nop();
|
||||
} else {
|
||||
Label retaddr;
|
||||
// Make the anchor frame walkable
|
||||
__ adr(rscratch2, retaddr);
|
||||
__ str(rscratch2, Address(rthread, JavaThread::last_Java_pc_offset()));
|
||||
__ lea(rscratch1, RuntimeAddress(entry));
|
||||
// Leave a breadcrumb for JavaFrameAnchor::capture_last_Java_pc()
|
||||
__ stp(zr, rscratch2, Address(__ pre(sp, -2 * wordSize)));
|
||||
__ blr(rscratch1);
|
||||
__ bind(retaddr);
|
||||
__ post_call_nop();
|
||||
__ add(sp, sp, 2 * wordSize);
|
||||
}
|
||||
if (Compile::current()->max_vector_size() > 0) {
|
||||
__ reinitialize_ptrue();
|
||||
|
||||
Reference in New Issue
Block a user