< prev index next >
src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp
Print this page
rev 59326 : 8244949: [PPC64] Reengineer assembler stop function
Reviewed-by:
*** 488,498 ****
Label index_ok;
lwa(R0, arrayOopDesc::length_offset_in_bytes(), result);
sldi(R0, R0, LogBytesPerHeapOop);
cmpd(CCR0, tmp, R0);
blt(CCR0, index_ok);
! stop("resolved reference index out of bounds", 0x09256);
bind(index_ok);
#endif
// Add in the index.
add(result, tmp, result);
load_heap_oop(result, arrayOopDesc::base_offset_in_bytes(T_OBJECT), result, tmp, R0, false, 0, L_handle_null);
--- 488,498 ----
Label index_ok;
lwa(R0, arrayOopDesc::length_offset_in_bytes(), result);
sldi(R0, R0, LogBytesPerHeapOop);
cmpd(CCR0, tmp, R0);
blt(CCR0, index_ok);
! stop("resolved reference index out of bounds");
bind(index_ok);
#endif
// Add in the index.
add(result, tmp, result);
load_heap_oop(result, arrayOopDesc::base_offset_in_bytes(T_OBJECT), result, tmp, R0, false, 0, L_handle_null);
*** 1141,1151 ****
save_interpreter_state(Rscratch2);
#ifdef ASSERT
ld(Rscratch1, _ijava_state_neg(top_frame_sp), Rscratch2); // Rscratch2 contains fp
cmpd(CCR0, R21_sender_SP, Rscratch1);
! asm_assert_eq("top_frame_sp incorrect", 0x951);
#endif
bctr();
}
--- 1141,1151 ----
save_interpreter_state(Rscratch2);
#ifdef ASSERT
ld(Rscratch1, _ijava_state_neg(top_frame_sp), Rscratch2); // Rscratch2 contains fp
cmpd(CCR0, R21_sender_SP, Rscratch1);
! asm_assert_eq("top_frame_sp incorrect");
#endif
bctr();
}
*** 2249,2259 ****
{
Label Lok;
subf(R0, R1_SP, scratch);
cmpdi(CCR0, R0, frame::abi_reg_args_size + frame::ijava_state_size);
bge(CCR0, Lok);
! stop("frame too small (restore istate)", 0x5432);
bind(Lok);
}
#endif
}
--- 2249,2259 ----
{
Label Lok;
subf(R0, R1_SP, scratch);
cmpdi(CCR0, R0, frame::abi_reg_args_size + frame::ijava_state_size);
bge(CCR0, Lok);
! stop("frame too small (restore istate)");
bind(Lok);
}
#endif
}
< prev index next >