diff --git a/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp b/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp index 5fbcce94029..b4deaefa65c 100644 --- a/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp +++ b/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp @@ -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(); } diff --git a/src/hotspot/cpu/ppc/macroAssembler_ppc.hpp b/src/hotspot/cpu/ppc/macroAssembler_ppc.hpp index 4be62098bdf..b2f5e8f0b60 100644 --- a/src/hotspot/cpu/ppc/macroAssembler_ppc.hpp +++ b/src/hotspot/cpu/ppc/macroAssembler_ppc.hpp @@ -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); diff --git a/src/hotspot/cpu/ppc/ppc.ad b/src/hotspot/cpu/ppc/ppc.ad index 33747538e00..c605c3432fb 100644 --- a/src/hotspot/cpu/ppc/ppc.ad +++ b/src/hotspot/cpu/ppc/ppc.ad @@ -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(); } }