8383161: [PPC64] MachCallDynamicJavaNode::ret_addr_offset() needs adaptation for COH

Reviewed-by: shade, rrich
This commit is contained in:
Martin Doerr 2026-04-25 10:16:04 +00:00
parent bca6f51ad1
commit d5d5334a14
3 changed files with 6 additions and 6 deletions

View File

@ -3214,7 +3214,7 @@ void MacroAssembler::store_klass_gap(Register dst_oop, Register val) {
stw(val, oopDesc::klass_gap_offset_in_bytes(), dst_oop);
}
int MacroAssembler::instr_size_for_decode_klass_not_null() {
int MacroAssembler::instr_size_for_load_klass() {
static int computed_size = -1;
// Not yet computed?
@ -3222,10 +3222,10 @@ int MacroAssembler::instr_size_for_decode_klass_not_null() {
// Determine by scratch emit.
ResourceMark rm;
int code_size = 8 * BytesPerInstWord;
CodeBuffer cb("decode_klass_not_null scratch buffer", code_size, 0);
int code_size = 16 * BytesPerInstWord;
CodeBuffer cb("load_klass scratch buffer", code_size, 0);
MacroAssembler* a = new MacroAssembler(&cb);
a->decode_klass_not_null(R11_scratch1);
a->load_klass(R11_scratch1, R11_scratch1);
computed_size = a->offset();
}

View File

@ -802,7 +802,7 @@ class MacroAssembler: public Assembler {
MacroAssembler::PreservationLevel preservation_level);
void load_method_holder(Register holder, Register method);
static int instr_size_for_decode_klass_not_null();
static int instr_size_for_load_klass();
void decode_klass_not_null(Register dst, Register src = noreg);
Register encode_klass_not_null(Register dst, Register src = noreg);

View File

@ -1187,7 +1187,7 @@ int MachCallDynamicJavaNode::ret_addr_offset() {
assert(vtable_index == Method::invalid_vtable_index, "correct sentinel value");
return 12;
} else {
return 24 + MacroAssembler::instr_size_for_decode_klass_not_null();
return 20 + MacroAssembler::instr_size_for_load_klass();
}
}