< prev index next >

src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.cpp

Print this page
rev 56646 : 8231757: [ppc] Fix VerifyOops. Errors show since 8231058.
Summary: Also make the checks print the wrong value and where a failure occurred.

*** 42,52 **** void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) { const Register temp_reg = R12_scratch2; Label Lmiss; ! verify_oop(receiver); MacroAssembler::null_check(receiver, oopDesc::klass_offset_in_bytes(), &Lmiss); load_klass(temp_reg, receiver); if (TrapBasedICMissChecks && TrapBasedNullChecks) { trap_ic_miss_check(temp_reg, iCache); --- 42,52 ---- void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) { const Register temp_reg = R12_scratch2; Label Lmiss; ! verify_oop(receiver, FILE_AND_LINE); MacroAssembler::null_check(receiver, oopDesc::klass_offset_in_bytes(), &Lmiss); load_klass(temp_reg, receiver); if (TrapBasedICMissChecks && TrapBasedNullChecks) { trap_ic_miss_check(temp_reg, iCache);
*** 98,108 **** // The following move must be the first instruction of emitted since debug // information may be generated for it. // Load object header. ld(Rmark, oopDesc::mark_offset_in_bytes(), Roop); ! verify_oop(Roop); // Save object being locked into the BasicObjectLock... std(Roop, BasicObjectLock::obj_offset_in_bytes(), Rbox); if (UseBiasedLocking) { --- 98,108 ---- // The following move must be the first instruction of emitted since debug // information may be generated for it. // Load object header. ld(Rmark, oopDesc::mark_offset_in_bytes(), Roop); ! verify_oop(Roop, FILE_AND_LINE); // Save object being locked into the BasicObjectLock... std(Roop, BasicObjectLock::obj_offset_in_bytes(), Rbox); if (UseBiasedLocking) {
*** 155,175 **** assert(mark_addr.disp() == 0, "cas must take a zero displacement"); if (UseBiasedLocking) { // Load the object out of the BasicObjectLock. ld(Roop, BasicObjectLock::obj_offset_in_bytes(), Rbox); ! verify_oop(Roop); biased_locking_exit(CCR0, Roop, R0, done); } // Test first it it is a fast recursive unlock. ld(Rmark, BasicLock::displaced_header_offset_in_bytes(), Rbox); cmpdi(CCR0, Rmark, 0); beq(CCR0, done); if (!UseBiasedLocking) { // Load object. ld(Roop, BasicObjectLock::obj_offset_in_bytes(), Rbox); ! verify_oop(Roop); } // Check if it is still a light weight lock, this is is true if we see // the stack address of the basicLock in the markWord of the object. cmpxchgd(/*flag=*/CCR0, --- 155,175 ---- assert(mark_addr.disp() == 0, "cas must take a zero displacement"); if (UseBiasedLocking) { // Load the object out of the BasicObjectLock. ld(Roop, BasicObjectLock::obj_offset_in_bytes(), Rbox); ! verify_oop(Roop, FILE_AND_LINE); biased_locking_exit(CCR0, Roop, R0, done); } // Test first it it is a fast recursive unlock. ld(Rmark, BasicLock::displaced_header_offset_in_bytes(), Rbox); cmpdi(CCR0, Rmark, 0); beq(CCR0, done); if (!UseBiasedLocking) { // Load object. ld(Roop, BasicObjectLock::obj_offset_in_bytes(), Rbox); ! verify_oop(Roop, FILE_AND_LINE); } // Check if it is still a light weight lock, this is is true if we see // the stack address of the basicLock in the markWord of the object. cmpxchgd(/*flag=*/CCR0,
*** 314,324 **** // assert(obj == O0, "must be"); // call(CAST_FROM_FN_PTR(address, Runtime1::entry_for(Runtime1::dtrace_object_alloc_id)), // relocInfo::runtime_call_type); } ! verify_oop(obj); } void C1_MacroAssembler::allocate_array( Register obj, // result: pointer to array after successful allocation --- 314,324 ---- // assert(obj == O0, "must be"); // call(CAST_FROM_FN_PTR(address, Runtime1::entry_for(Runtime1::dtrace_object_alloc_id)), // relocInfo::runtime_call_type); } ! verify_oop(obj, FILE_AND_LINE); } void C1_MacroAssembler::allocate_array( Register obj, // result: pointer to array after successful allocation
*** 381,391 **** //assert(obj == O0, "must be"); //call(CAST_FROM_FN_PTR(address, Runtime1::entry_for(Runtime1::dtrace_object_alloc_id)), // relocInfo::runtime_call_type); } ! verify_oop(obj); } #ifndef PRODUCT --- 381,391 ---- //assert(obj == O0, "must be"); //call(CAST_FROM_FN_PTR(address, Runtime1::entry_for(Runtime1::dtrace_object_alloc_id)), // relocInfo::runtime_call_type); } ! verify_oop(obj, FILE_AND_LINE); } #ifndef PRODUCT
*** 397,408 **** Label not_null; cmpdi(CCR0, r, 0); bne(CCR0, not_null); stop("non-null oop required"); bind(not_null); ! if (!VerifyOops) return; ! verify_oop(r); } #endif // PRODUCT void C1_MacroAssembler::null_check(Register r, Label* Lnull) { --- 397,407 ---- Label not_null; cmpdi(CCR0, r, 0); bne(CCR0, not_null); stop("non-null oop required"); bind(not_null); ! verify_oop(r, FILE_AND_LINE); } #endif // PRODUCT void C1_MacroAssembler::null_check(Register r, Label* Lnull) {
< prev index next >