8294744: AArch64: applications/kitchensink/Kitchensink.java crashed: assert(oopDesc::is_oop(obj)) failed: not an oop

Co-authored-by: Fei Yang <fyang@openjdk.org>
Reviewed-by: aph, fyang, dcubed
This commit is contained in:
Patricio Chilano Mateo 2023-01-10 17:16:26 +00:00
parent 21d468e575
commit 151450ea9b
2 changed files with 10 additions and 3 deletions

View File

@ -836,9 +836,12 @@ void TemplateInterpreterGenerator::generate_fixed_frame(bool native_call) {
__ stp(r10, rscratch1, Address(sp, 4 * wordSize));
// Move SP out of the way
__ mov(sp, rscratch1);
} else {
__ mov(rscratch1, sp);
} else {
// Make sure there is room for the exception oop pushed in case method throws
// an exception (see TemplateInterpreterGenerator::generate_throw_exception())
__ sub(rscratch1, sp, 2 * wordSize);
__ stp(zr, rscratch1, Address(sp, 4 * wordSize));
__ mov(sp, rscratch1);
}
}

View File

@ -776,8 +776,12 @@ void TemplateInterpreterGenerator::generate_fixed_frame(bool native_call) {
// Move SP out of the way
__ mv(sp, t0);
} else {
__ sd(sp, Address(sp, 5 * wordSize));
// Make sure there is room for the exception oop pushed in case method throws
// an exception (see TemplateInterpreterGenerator::generate_throw_exception())
__ sub(t0, sp, 2 * wordSize);
__ sd(t0, Address(sp, 5 * wordSize));
__ sd(zr, Address(sp, 4 * wordSize));
__ mv(sp, t0);
}
}