3820 assert(bs->kind() == BarrierSet::CardTableForRS || |
3820 assert(bs->kind() == BarrierSet::CardTableForRS || |
3821 bs->kind() == BarrierSet::CardTableExtension, "wrong barrier"); |
3821 bs->kind() == BarrierSet::CardTableExtension, "wrong barrier"); |
3822 card_table_write(bs->byte_map_base, tmp, store_addr); |
3822 card_table_write(bs->byte_map_base, tmp, store_addr); |
3823 } |
3823 } |
3824 |
3824 |
|
3825 // ((OopHandle)result).resolve(); |
|
3826 void MacroAssembler::resolve_oop_handle(Register result) { |
|
3827 // OopHandle::resolve is an indirection. |
|
3828 ld_ptr(result, 0, result); |
|
3829 } |
|
3830 |
3825 void MacroAssembler::load_mirror(Register mirror, Register method) { |
3831 void MacroAssembler::load_mirror(Register mirror, Register method) { |
3826 const int mirror_offset = in_bytes(Klass::java_mirror_offset()); |
3832 const int mirror_offset = in_bytes(Klass::java_mirror_offset()); |
3827 ld_ptr(method, in_bytes(Method::const_offset()), mirror); |
3833 ld_ptr(method, in_bytes(Method::const_offset()), mirror); |
3828 ld_ptr(mirror, in_bytes(ConstMethod::constants_offset()), mirror); |
3834 ld_ptr(mirror, in_bytes(ConstMethod::constants_offset()), mirror); |
3829 ld_ptr(mirror, ConstantPool::pool_holder_offset_in_bytes(), mirror); |
3835 ld_ptr(mirror, ConstantPool::pool_holder_offset_in_bytes(), mirror); |