< prev index next >

src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp

Print this page
rev 55858 : 8228649: [PPC64] SA reads wrong slots from interpreter frames
Summary: Make frame layout consistent between dbg and product build and implement offsets accordingly.
Reviewed-by: goetz, gromero

*** 766,785 **** Register Rscratch1, Register Rscratch2) { // Pop interpreter frame. ld(Rscratch1, 0, R1_SP); // *SP ld(Rsender_sp, _ijava_state_neg(sender_sp), Rscratch1); // top_frame_sp ld(Rscratch2, 0, Rscratch1); // **SP - #ifdef ASSERT - { - Label Lok; - ld(R0, _ijava_state_neg(ijava_reserved), Rscratch1); - cmpdi(CCR0, R0, 0x5afe); - beq(CCR0, Lok); - stop("frame corrupted (remove activation)", 0x5afe); - bind(Lok); - } - #endif if (return_pc!=noreg) { ld(return_pc, _abi(lr), Rscratch1); // LR } // Merge top frames. --- 766,775 ----
*** 2261,2278 **** cmpdi(CCR0, R0, frame::abi_reg_args_size + frame::ijava_state_size); bge(CCR0, Lok); stop("frame too small (restore istate)", 0x5432); bind(Lok); } - { - Label Lok; - ld(R0, _ijava_state_neg(ijava_reserved), scratch); - cmpdi(CCR0, R0, 0x5afe); - beq(CCR0, Lok); - stop("frame corrupted (restore istate)", 0x5afe); - bind(Lok); - } #endif } void InterpreterMacroAssembler::get_method_counters(Register method, Register Rcounters, --- 2251,2260 ----
< prev index next >