8357793: [PPC64] VM crashes with -XX:-UseSIGTRAP -XX:-ImplicitNullChecks

Reviewed-by: shade, dbriemann
This commit is contained in:
Martin Doerr 2025-06-02 08:31:10 +00:00
parent 40ce05d408
commit ba9f44c90f
2 changed files with 4 additions and 2 deletions

View File

@ -359,7 +359,9 @@ void MethodHandles::generate_method_handle_dispatch(MacroAssembler* _masm,
? -1 // enforce receiver null check
: oopDesc::klass_offset_in_bytes(); // regular null-checking behavior
__ null_check_throw(receiver_reg, klass_offset, temp1, Interpreter::throw_NullPointerException_entry());
address NullPointerException_entry = for_compiler_entry ? SharedRuntime::throw_NullPointerException_at_call_entry()
: Interpreter::throw_NullPointerException_entry();
__ null_check_throw(receiver_reg, klass_offset, temp1, NullPointerException_entry);
if (iid != vmIntrinsics::_linkToSpecial || VerifyMethodHandles) {
__ load_klass(temp1_recv_klass, receiver_reg);

View File

@ -1035,7 +1035,7 @@ void TemplateTable::bastore() {
// Need to check whether array is boolean or byte
// since both types share the bastore bytecode.
__ load_klass(Rscratch, Rarray);
__ load_klass_check_null_throw(Rscratch, Rarray, Rscratch);
__ lwz(Rscratch, in_bytes(Klass::layout_helper_offset()), Rscratch);
int diffbit = exact_log2(Klass::layout_helper_boolean_diffbit());
__ testbitdi(CR0, R0, Rscratch, diffbit);