< prev index next >

src/hotspot/cpu/ppc/gc/shared/barrierSetAssembler_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.


  96       if (L_handle_null != NULL) {
  97         __ cmpdi(CCR0, dst, 0);
  98         __ beq(CCR0, *L_handle_null);
  99       }
 100     }
 101     break;
 102   }
 103   default: Unimplemented();
 104   }
 105 }
 106 
 107 void BarrierSetAssembler::resolve_jobject(MacroAssembler* masm, Register value,
 108                                           Register tmp1, Register tmp2, bool needs_frame) {
 109   Label done;
 110   __ cmpdi(CCR0, value, 0);
 111   __ beq(CCR0, done);         // Use NULL as-is.
 112 
 113   __ clrrdi(tmp1, value, JNIHandles::weak_tag_size);
 114   __ ld(value, 0, tmp1);      // Resolve (untagged) jobject.
 115 
 116   __ verify_oop(value);
 117   __ bind(done);
 118 }
 119 
 120 void BarrierSetAssembler::try_resolve_jobject_in_native(MacroAssembler* masm, Register dst, Register jni_env,
 121                                                         Register obj, Register tmp, Label& slowpath) {
 122   __ clrrdi(dst, obj, JNIHandles::weak_tag_size);
 123   __ ld(dst, 0, dst);         // Resolve (untagged) jobject.
 124 }


  96       if (L_handle_null != NULL) {
  97         __ cmpdi(CCR0, dst, 0);
  98         __ beq(CCR0, *L_handle_null);
  99       }
 100     }
 101     break;
 102   }
 103   default: Unimplemented();
 104   }
 105 }
 106 
 107 void BarrierSetAssembler::resolve_jobject(MacroAssembler* masm, Register value,
 108                                           Register tmp1, Register tmp2, bool needs_frame) {
 109   Label done;
 110   __ cmpdi(CCR0, value, 0);
 111   __ beq(CCR0, done);         // Use NULL as-is.
 112 
 113   __ clrrdi(tmp1, value, JNIHandles::weak_tag_size);
 114   __ ld(value, 0, tmp1);      // Resolve (untagged) jobject.
 115 
 116   __ verify_oop(value, FILE_AND_LINE);
 117   __ bind(done);
 118 }
 119 
 120 void BarrierSetAssembler::try_resolve_jobject_in_native(MacroAssembler* masm, Register dst, Register jni_env,
 121                                                         Register obj, Register tmp, Label& slowpath) {
 122   __ clrrdi(dst, obj, JNIHandles::weak_tag_size);
 123   __ ld(dst, 0, dst);         // Resolve (untagged) jobject.
 124 }
< prev index next >