< prev index next >

src/hotspot/cpu/ppc/gc/shared/barrierSetAssembler_ppc.cpp

Print this page




  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 }


  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 }






< prev index next >